Android/iOS 以 Django 作为后端的应用程序

Android/iOS app with Django as backend

我有一个用 Django 构建的网站项目,想为它构建一个移动应用程序。我做了很多研究,但对 nativehybrid 应用感到困惑。我的项目基本上是 Quora 的克隆,只是一个大学项目。我还看到了 PhoneGapIonicSencha,但我真的很困惑它们是如何匹配的。我必须将 IonicPhoneGap 或 Apache Cordova 一起使用,还是仅使用 Ionic?结构是什么,我应该从哪里开始?

请注意,移动应用程序也 clients 就像网络浏览器一样。您可以将移动应用程序视为特定 websites/web API 或您可以称之为端点的专用浏览器。

客户端与服务器通信以请求某些资源,如果可用,则服务器响应。客户端如何处理响应是它开始变得混乱的地方,因为无论服务器给出什么响应,它都可以 manipulated/presented 以任何方式在客户端编程给实际的人类用户。

就像在网络浏览器中一样,如果您请求 HTML 内容,您会得到一个漂亮的网页,其中包含按钮以及可能的动画和内容。您也可以使用控制台终端请求相同的内容,但您可能得到的只是一团丑陋的 HTML 淹没您的终端。为什么?因为作为控制台终端的客户端并非设计用于呈现 HTML,而 Web 浏览器是。

现在适用于移动应用程序:本机移动应用程序不呈现 HTML。这些类型的应用程序 UI 已经用 Java 或 Obj-C 等其他语言编写,但它仍然可以请求和处理来自 Web API 的内容(JSON 、XML 等),以便根据您的访问级别填充其 UI 或 show/hide 按钮中的字段。

我不能对混合应用程序的细节发表太多评论,所以其他人也可以随时澄清任何误解。混合应用程序可以在应用程序的某些部分呈现 HTML,同时在应用程序的其他部分保留原生方面,以便应用程序可以与硬件交互。就我的观点而言,混合移动应用程序只是一个内置浏览器界面的本机应用程序。

Django 只是一个网络框架,您可以使用它来编写您的移动应用程序可以与之通信的网站或网络 API。 PhoneGap、Ionic 和 Sencha 是可用于创建这些移动应用程序的移动开发框架。

TL;DR:从 Ionic 开始。 Ionic 使用 Cordova "under the hood"。不需要 PhoneGap 或 Sencha,所以不要被它们搞糊涂了。

免责声明:这听起来像是广告,所以我不得不说我与 Ionic 没有任何关系,我只是碰巧非常喜欢它,所以我分享了对它的爱.

让我们一步一步来:

什么是 Ionic?

Ionic 是一个用于构建混合移动应用程序的框架,它建立在一个生态系统之上,其中包括 Angular 作为 Web 应用程序框架,并使用 Cordova 构建和打包本机应用程序。 Ionic 创建了一个可以通过应用程序商店安装的本机移动应用程序,并包含所谓的 WebView(本质上是一个独立的浏览器 window)和一个 JavaScript API 网络应用程序将 运行.

什么是混合移动应用程序?

如果您是 Web 开发人员,那么您对 ​​HTML、CSS 和 JavaScript 有一定的了解。此外,您很可能正在使用最近非常流行的框架之一,例如 AngularJS。直到最近,如果您想为(当前)两个最流行的移动操作系统 iOS 和 Android 制作应用程序,您唯一的选择就是制作所谓的 本机应用程序 使用目标平台本身的 SDK。当然,这意味着您需要制作两个版本的应用程序 - iOS 和 Android。如果您是独立开发者,那么您精通这两方面的机会就不会那么高。

如今,幸运的是,借助 Ionic Framework,您可以使用 Web 开发人员已有的技能创建一个应用程序,然后将这个代码库作为应用程序部署到 iOS 和 Android 商店。这有多酷,对吧?所以,混合是因为它是一个 "simple" 网络应用程序,它使用所谓的 WebView 包裹在本机应用程序中。

为什么 Ionic 很酷?

Ionic 很棒,因为它 "just" 不是一个框架。相反,它围绕着它构建了一个完整的生态系统。例如,Ionic 允许您:

  • generate icons and splash screens 适用于所有设备和设备大小,只需一个命令:ionic resources。仅此一项就可以为您节省至少一天的时间来准备各种尺寸的图像。
  • 使用代码更改即时更新您的应用程序,即使 运行直接在您的设备上使用 ionic run --livereload
  • 并排构建和测试 iOS 和 Android 版本,并立即查看 ionic serve --lab
  • 的变化
  • 无需通过 App Store ionic share
  • 即可与世界各地的客户、客户和测试人员共享您的 Ionic 应用程序
  • 使用 ngCordova 轻松访问设备的完整本机功能(在这里您可以使用任何 Cordova 插件 - 所以 Ionic 确实比 Cordova 本身更重要)
  • 此外,他们(Ionic 团队)正在为您的 Ionic 应用构建全栈后端​​服务和工具,例如 Deploy (for deploying a new version without going through Apple review process!), Analytics, Push notifications
  • Ionic CLI(命令行界面)在后端使用 Cordova,并允许您为 iOS 和 Android 构建(直接使用 Ionic CLI)应用程序(您通过 ionic build iosionic build android 和 woila)
  • Ionic 使用 Angular 作为前端框架,因此如果您熟悉它,它将会是一个额外的收获。他们也是 working closely with the Angular 2.0 team

如何开始你的项目?

如果你看一下我对 this question you'll see that if you already have an API defined in your Django backend, then you can start using it quite quickly by leveraging the existing API and consuming it with Angular $resource 的回答。

希望这对您有所帮助,并希望您发现使用 Ionic 是一种乐趣。