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

时间:2015-08-03 15:14:15

标签: cordova ionic-framework ionic hybrid-mobile-app

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

2 个答案:

答案 0 :(得分:10)

TL; DR :从Ionic开始。 Ionic使用Cordova“引擎盖下”。不需要PhoneGap或Sencha,所以不要被它混淆。

免责声明:这听起来像广告,所以我不得不说我与Ionic没有任何联系,我碰巧喜欢它,以至于我分享对它的热爱。

让我们一步一步:

什么是离子?

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

什么是混合移动应用?

如果您是网络开发人员,那么您对HTML,CSS和JavaScript有很好的了解。此外,你最有可能使用像AngularJS这样的一些如此轻微流行的框架。直到最近,如果你想为(目前)两个最流行的移动操作系统iOS和Android制作应用程序,你唯一的选择就是使用预期平台的SDK制作所谓的原生应用程序本身。当然,这意味着您需要制作两个版本的应用程序 - 包括iOS和Android。如果你是一个单独的开发者,那么你精通两者并不是那么高。

现在,幸运的是,通过Ionic Framework,您可以使用您作为Web开发人员已有的技能创建一个应用程序,然后将这一个代码库作为应用程序部署到iOS和Android商店。这有多酷,对吧?因此,混合,因为它是一个“简单”的Web应用程序,包含在本机应用程序中,带有所谓的WebView。

为什么Ionic很酷?

离子很棒,因为它不仅仅是一个框架。相反,它有一个围绕它建立的整个生态系统。例如,Ionic允许您:

    使用单个命令{li> generate icons and splash screens了解所有设备和设备尺寸:ionic resources。仅此一项就可以为您节省至少一天的各种尺寸的图像准备工作。
  • 即使使用ionic run --livereload
  • 直接在您的设备上运行,也会立即通过代码更改来更新您的应用
  • 并排构建和测试iOS和Android版本,并使用ionic serve --lab
  • 即时查看更改
  • 与世界各地的客户,客户和测试人员分享您的Ionic应用程序,而无需通过ionic share
  • 进入App Store
  • 使用ngCordova轻松访问设备的完整原生功能(这里你可以使用任何Cordova插件 - 所以Ionic确实比Cordova本身更多)
  • 此外,他们(Ionic团队)为您的Ionic应用程序构建了一个全栈后端服务和工具,例如Deploy(用于部署新版本而不通过Apple审核流程!),{{3} },Analytics
  • Ionic CLI(命令行界面)在后端使用Cordova,允许您为iOS和Android构建(直接使用Ionic CLI)应用程序(通过执行ionic build iosionic build android和woila)< / LI>
  • Ionic使用Angular作为前端框架,所以如果你熟悉它,它将作为奖励。他们也是Push notifications

如何开始您的项目?

如果您查看我对working closely with the Angular 2.0 team的回答,您会看到如果您已经在Django后端定义了API,那么您可以通过利用现有API并使用它来快速开始使用它与Angular this question

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

答案 1 :(得分:6)

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

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

就像在网络浏览器中一样,如果你请求HTML内容,那么你会得到一个带有按钮的漂亮网页,可能还有动画和东西。您也可以使用控制台终端请求相同的内容,但您可能得到的只是一个丑陋的HTML blob充斥您的终端。为什么?因为作为控制台终端的客户端不是为了呈现HTML而设计的,而是Web浏览器。

现在适用于移动应用:原生移动应用不会呈现HTML。这些类型的应用程序的UI已经用Java或Obj-C等其他语言编写,但它仍然可以从Web API(JSON,XML等)请求和处理内容,以便在其UI中填充字段或显示/隐藏按钮取决于您的访问级别。

我不能对混合应用程序的具体细节作出太多评论,因此其他人也可以随意清除任何误解。混合应用程序可以在应用程序的某些部分呈现HTML,同时在应用程序的某些其他部分保留该原生方面,以便应用程序可以与硬件进行交互。就我的观点而言,混合移动应用程序只是一个包含浏览器界面的本机应用程序。

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