Kotlin/Swift 中的应用程序与 Web 应用程序
Application in Kotlin/Swift vs Web Application
我正在使用 Kotlin 开发 android 应用程序。它是一个连接到 The Movie Database 的电影库,用户可以在其中查找特定的标题或仅查看 "Explore" 选项卡中的图块。我正在和我的同事讨论,因为他认为对于这种应用程序,Web 应用程序比本地应用程序更好。我选择在 Kotlin 中开发它的原因是:
- 它有一些可以离线使用的功能,比如监视列表;
- 我可以为集成到 Android 系统中的应用程序创建小部件;
- 我可以在本地管理数据库,而不是使用外部数据库;
- 我可以根据 运行 它所在的设备(平板电脑、phone 等)更具体地定制设计。
还有哪些其他关键功能使 Kotlin/Swift 中的应用程序开发一文不值?
这些是我的应用程序的一些屏幕:
如今,由于渐进式 Web 应用程序(网络应用程序清单、服务工作者脚本和网络 APIs),可以做很多事情来让网络应用程序 "behave" 像本机应用程序一样。
(进步)Web 应用专家:
- 可以安装(如在主屏幕上有一个图标并启动)
- 可以离线使用(利用已安装的服务工作者和缓存)
- 可以有启动画面、应用程序图标等
- 可以为多个平台编写一次(例如iOS和Android)
- 可以写成JavaScript、CSS、HTML
- 可以发送推送通知(通过安装的 service worker 脚本)
- 可以在后台 运行(通过安装的 Service Worker 脚本)
- 可以有本地存储(通过 IndexedDB 和缓存 API)
- 可以使用许多不同的 Web API 来使用设备功能(例如地理位置)
- 可通过URL分享,无需下载/安装即可使用
- 通常尺寸要小得多
- 还有更多..
(渐进式)Web 应用程序缺点:
- 通常不会在官方应用商店中列出(这并非不可能,但是使用例如 Apache Cordova)
- 通常不利用原生 ui 元素和原生用户体验最佳实践(但是可以做到,但在使用单一代码库为不同平台开发时这是一种权衡)
- 与本机代码相比,性能可能略差
- 某些权限不可能(例如阅读短信/联系人)
- 某些接口只能在不在后台时使用(例如 gps 或蓝牙)
- 像Android小部件这样的特定东西需要单独开发
上面列出的 Web 应用程序缺点是使用 Kotlin 或 Swift. [=11= 等本地语言开发仍然(可能)有意义的原因]
然而,确切的优缺点取决于 Web 应用程序的确切类型。有常规网络应用程序、渐进式网络应用程序、混合应用程序和跨平台应用程序。例如。使用 PhoneGap / Apache Cordova 时:
The resulting applications are hybrid, meaning that they are neither
truly native mobile application (because all layout rendering is done
via Web views instead of the platform's native UI framework) nor
purely Web-based (because they are not just Web apps, but are packaged
as apps for distribution and have access to native device APIs).
我正在使用 Kotlin 开发 android 应用程序。它是一个连接到 The Movie Database 的电影库,用户可以在其中查找特定的标题或仅查看 "Explore" 选项卡中的图块。我正在和我的同事讨论,因为他认为对于这种应用程序,Web 应用程序比本地应用程序更好。我选择在 Kotlin 中开发它的原因是:
- 它有一些可以离线使用的功能,比如监视列表;
- 我可以为集成到 Android 系统中的应用程序创建小部件;
- 我可以在本地管理数据库,而不是使用外部数据库;
- 我可以根据 运行 它所在的设备(平板电脑、phone 等)更具体地定制设计。
还有哪些其他关键功能使 Kotlin/Swift 中的应用程序开发一文不值? 这些是我的应用程序的一些屏幕:
如今,由于渐进式 Web 应用程序(网络应用程序清单、服务工作者脚本和网络 APIs),可以做很多事情来让网络应用程序 "behave" 像本机应用程序一样。
(进步)Web 应用专家:
- 可以安装(如在主屏幕上有一个图标并启动)
- 可以离线使用(利用已安装的服务工作者和缓存)
- 可以有启动画面、应用程序图标等
- 可以为多个平台编写一次(例如iOS和Android)
- 可以写成JavaScript、CSS、HTML
- 可以发送推送通知(通过安装的 service worker 脚本)
- 可以在后台 运行(通过安装的 Service Worker 脚本)
- 可以有本地存储(通过 IndexedDB 和缓存 API)
- 可以使用许多不同的 Web API 来使用设备功能(例如地理位置)
- 可通过URL分享,无需下载/安装即可使用
- 通常尺寸要小得多
- 还有更多..
(渐进式)Web 应用程序缺点:
- 通常不会在官方应用商店中列出(这并非不可能,但是使用例如 Apache Cordova)
- 通常不利用原生 ui 元素和原生用户体验最佳实践(但是可以做到,但在使用单一代码库为不同平台开发时这是一种权衡)
- 与本机代码相比,性能可能略差
- 某些权限不可能(例如阅读短信/联系人)
- 某些接口只能在不在后台时使用(例如 gps 或蓝牙)
- 像Android小部件这样的特定东西需要单独开发
上面列出的 Web 应用程序缺点是使用 Kotlin 或 Swift. [=11= 等本地语言开发仍然(可能)有意义的原因]
然而,确切的优缺点取决于 Web 应用程序的确切类型。有常规网络应用程序、渐进式网络应用程序、混合应用程序和跨平台应用程序。例如。使用 PhoneGap / Apache Cordova 时:
The resulting applications are hybrid, meaning that they are neither truly native mobile application (because all layout rendering is done via Web views instead of the platform's native UI framework) nor purely Web-based (because they are not just Web apps, but are packaged as apps for distribution and have access to native device APIs).