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

col*_*der 3 cordova hybrid-mobile-app ionic-framework ionic

我有一个在Django内置的网站项目,并希望为它构建一个移动应用程序.我做了很多研究,但在app nativehybridapp 之间感到困惑.我的项目基本上是Quora克隆,只是一个大学项目.我也看到了PhoneGap,IonicSencha但我真搞不清楚如何将它们.我一定要使用Ionic带有PhoneGap或Apache科尔多瓦或者只是Ionic?结构是什么,我应该从哪里开始?

Nik*_*ola 10

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

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

让我们一步一步:

什么是离子的?

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

什么是混合移动应用?

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

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

为什么Ionic很酷?

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

  • 使用一个命令为所有设备和设备大小生成图标和启动画面:ionic resources.仅此一项就可以为您节省至少一天的各种尺寸图像.
  • 即使直接在您的设备上运行,也可以通过代码更改即时更新您的应用 ionic run --livereload
  • 并排构建和测试iOS和Android版本,并立即查看更改 ionic serve --lab
  • 与世界各地的客户,客户和测试人员分享您的Ionic应用程序,而无需通过App Store ionic share
  • 使用ngCordova轻松访问设备的完整原生功能(这里你可以使用任何Cordova插件 - 所以Ionic确实比Cordova本身更多)
  • 此外,他们(Ionic团队)为您的Ionic应用程序构建了一个全栈后端服务和工具,例如Deploy(用于部署新版本而无需通过Apple审核流程!),分析,推送通知.
  • Ionic CLI(命令行界面)在后端使用Cordova,允许您为iOS和Android构建(直接使用Ionic CLI)应用程序(通过执行ionic build ios或者ionic build android执行)
  • Ionic使用Angular作为前端框架,所以如果你熟悉它,它将成为奖励.他们也与Angular 2.0团队密切合作.

如何开始你的项目?

如果你看看我对这个问题的回答,你会发现如果你已经在Django后端定义了一个API,那么你可以通过利用现有的API并使用Angular $资源来快速使用它.

希望这有助于您发现使用Ionic是一种乐趣.

  • HTTP是用于执行数据传输的协议.与运输相比,您可以使用这种非常粗略的类比.Web API /网站是端口和港口.客户端从服务器请求的数据或资源是运送的货物.HTTP是货轮. (2认同)

Wan*_*der 6

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

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

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

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

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

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