【问题标题】:Application in Kotlin/Swift vs Web Application [closed]Kotlin/Swift 中的应用程序与 Web 应用程序 [关闭]
【发布时间】:2020-09-03 12:43:51
【问题描述】:

我正在使用 Kotlin 开发一个 android 应用程序。它是一个连接到电影数据库的电影库,用户可以在其中查找特定标题或仅查看“探索”选项卡中的图块。我正在和我的同事讨论,因为他认为对于这种应用程序,Web 应用程序会比原生应用程序更好。我选择在 Kotlin 中开发它的原因是:

  1. 它有一些可以离线使用的功能,比如关注列表;
  2. 我可以为集成到 Android 系统中的应用创建小部件;
  3. 我可以在本地管理数据库,而不是使用外部数据库;
  4. 我可以根据我运行它的设备(平板电脑、手机等)更具体地自定义设计。

还有哪些其他关键特性使使用 Kotlin/Swift 开发应用毫无价值? 这些是我的应用程序的一些屏幕:

【问题讨论】:

  • 如果您正在寻找其他语言或框架,您可以尝试Flutter,它支持iOS、Android、Web、macOS、Windows。
  • @Pemassi 我正在寻找使用 Kotlin 开发比使用其他语言或框架(例如 Flutter)更好的原因

标签: android reactjs kotlin web-applications


【解决方案1】:

如今,借助渐进式 Web 应用(Web 应用清单、Service Worker 脚本和 Web API),可以做很多事情来让 Web 应用像原生应用一样“运行”。

(渐进式)网络应用专业人士

  • 可以安装(如在主屏幕上有一个图标并启动)
  • 可以离线使用(利用已安装的 Service Worker 和缓存)
  • 可以有闪屏、应用图标等
  • 一次可用于多个平台(例如 iOS 和 Android)
  • 可以用 JavaScript、CSS、HTML 编写
  • 可以发送推送通知(通过安装的服务工作者脚本)
  • 可以在后台运行(通过安装的 service worker 脚本)
  • 可以有本地存储(通过 IndexedDB 和 Cache API)
  • 可以使用许多不同的 Web API 来使用设备功能(例如地理位置)
  • 可通过网址分享,无需下载/安装即可使用
  • 通常尺寸要小得多
  • 还有更多..

(渐进式)网络应用的缺点:

  • 通常不会在官方应用商店中列出(这并非不可能,但使用例如 Apache Cordova)
  • 通常不利用本机 ui 元素和本机 ux 最佳实践(但可以这样做,但在使用单一代码库针对不同平台进行开发时需要权衡)
  • 与本机代码相比,性能可能稍差
  • 某些权限不可能(例如阅读短信/联系人)
  • 某些接口只能在不在后台时使用(例如 gps 或蓝牙)
  • Android Widgets 等特定的东西需要单独开发

上面列出的网络应用程序缺点是使用 Kotlin 或 Swift 等本地语言开发仍然(可能)有意义的原因。

然而,确切的利弊取决于网络应用程序的确切类型。有常规网络应用程序、渐进式网络应用程序、混合应用程序和跨平台应用程序。例如。使用 PhoneGap / Apache Cordova 时:

生成的应用程序是混合的,这意味着它们都不是 真正的原生移动应用程序(因为所有布局渲染都已完成 通过 Web 视图而不是平台的本机 UI 框架)也 纯粹基于 Web(因为它们不仅仅是 Web 应用程序,而是被打包的 作为分发应用程序并可以访问本机设备 API)。

【讨论】:

    猜你喜欢
    • 2016-02-17
    • 2011-05-20
    • 1970-01-01
    • 2015-08-27
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2016-06-28
    相关资源
    最近更新 更多