(一)半小时开发一个APP
【前言】
HPP是什么?
HybirdApp的简称,详细介绍参见:HPP——让所有中小企业拥有自己的APP
说白了就是用html+css+js开发app,包括ios和android版本。
HBuilder
具体实现方式比较多,自行百度吧,就不一一叙述了,
之前比较推荐的HBuilder+mui+nativejs那套,相关资料:
Framework7
HBuilder优点有很多,参见上面的几篇文章,
缺点也有些,比较大的就是ui,和Framework7一比,完全是天壤之别,
从几年前的初识,到前段时间Framework7推出android版本的惊艳,
感觉总有人在耳语,这么好的东西不做app,可惜了,
结
说了半天,其实就是想说Framework7效果很好,但这个东西配合HBuilder玩不转,配合phonegap效果很好。
【前期准备】
1.安装phonegap
npm i -g phonegap@latest
安装过程参见官网:http://docs.phonegap.com/getting-started/1-install-phonegap/cli/不要害怕,只是几行代码,前提是有nodejs和npm,这个就自己百度吧。
2.下载phonegap developer app
iphone直接在app store搜索就行,android的话需要去google play,如果不能翻墙的同学可以下载这个
3.git clone
git地址:https://github.com/uikoo9/phonegap-framework7.git
4.目录介绍

demo1为android版本,demo2为ios版本
【android版】
1.cd到demo1/www下

2.phonegap serve
Framework7文件比较多,输入命令后耐心等会。

3.打开phonegap developer app
找一个安装了phonegap developer app的android手机,而且要保证可以访问到手机网络
打开app,然后输入上面serve地址,点击connect

4.效果

【ios版】
和android版本相似,不同的是进入demo2,并且使用iphone手机查看效果,如下:

【phonegap-serve】
phonegap serve 命令会在本机启动一个小型的web serve服务,
做前端的应该比较熟悉,和browser-sync类似,
当手机访问本机serve的时候,会将本机www目录下的文件传输到手机上,
进而基于phonegap developer app打包成一个app,方便调试,
这种真机调试方式也是比较好的,
1.不需要数据线,只需要手机上安装app
2.启动的serve可以监听文件修改,当有文件修改的时候立即更新
【Framework7单页面应用】
文件结构
从github上下载framework7之后,可以看到文件结构如下:

简单的介绍下:
1.dist:放构建后的资源文件,一些js,css之类的
2.kitchen-sink-ios:ios风格
3.kitchen-sink-material:android风格
进入kitchen-sink-ios文件夹下可以看到结构如下:

打开各个html,发现只有index是有完整结构的,也就是有html,head,body等,
而其他的html文件都只是一些html片段,例如popover.html文件:

SPA应用
前端发展迅猛,经常会听到一些名次,spa,mvvm,mvc之类的,
如果你的前端还是停留在切图做页面的层次,那么已经out的不行了,
所谓spa,就是单页面应用,
所谓单页面应用就是,进入的时候只加载一个主页面,然后其他你看到的跳转页面,都是以div的形式展现,
拿framework7来说,就是通过ajax加载不同的html文件中的html片段然后展现,
单页面的最大好处是:加载快,页面之间跳转可以做出各种效果,普通的href跳转是无能为力的。
前端mvc
可能有经验的人员已经想到了,你加载的url都是index.html,然后这个url不变化,只是加载各种div页面,
那么问题来了?当用户要直接访问about.html的时候怎么做,因为你只有一个index.html的url,
spa一般是通过#分隔外加路由实现的,例如访问about.html的时候url为index.html#about之类的,
所以说一个完善spa框架,路由部分是必不可少的,
或者说前几年的spa大火,激发了一波前端mvc框架,例如backbone,angularjs等,
mvvm
如果仔细想想,那是不是又会有一个问题,spa的主html+其他div的模式带来一个问题,
普通的href跳转的方式,服务器返回的是已经渲染号的html+data的一个整体,例如jsp,
但是spa的模式,通过ajax请求获取的是一段html代码片段,然后再次ajax请求data,
那么你到手的是html和data,并不是html+data的整体,
这个时候将data渲染到html最普通的方式就是js或者jq一个一个设置,想想都头大,
解决这个问题的就是js template,也就是js模版,例如juicer这个模版效果:

大大加快了data整合html的过程。
js template是一个data到html的单向数据绑定,而mvvm就是双向数据绑定。
结
1.spa
现在前端的迅猛发展,spa功不可没,虽然现在spa相对不那么火了。
2.phonegap过时?
有人和我说phonegap他12年就听说了,不是早过时了么,
phonegap火的时候,对应的ui最佳搭档是jquery ui,体积大效果差,外加硬件跟不上,
这些才是phonegap被诟病的缘由,而并不是phonegap本身不好,
phonegap,hbuilder这类工具只是一个打包工具,将你的html+css+js打包正app,只是做了这个事情,
只要hybirdapp还存在一天,phonegap做为打包工具就不会过时,
而且目前手机硬件上来了,phonegap+spa的方式应该也是一种不错的体验。
转载:http://uikoo9.com/book/chapterDetail/105
(一)半小时开发一个APP的更多相关文章
- 开发一个 app 有多难?
171 个回答 默认排序 道衍天机 有事情的加微信1293190838找我 1,150 人赞同了该回答 ----------------------------------------------- ...
- 2016开发一个app需要多少钱?app开发需要哪些成本-app开发问题汇总-广州达到信息
作为一个APP开发从业者,被外行的朋友们问及最多的问题是,"做一个网站需要多少钱?"或者"开发一个APP需要多少钱?".作为开发过完整网站项目和手机APP的人, ...
- 开发一个app需要多少钱
App应用开发是目前最热门的产业,很多企业都想通过app的开发来进入移动互联网市场分一杯羹. 那么你一定很想知道开发一个app需要多少钱吧?那下面企业帮就来帮大家计算一下费用吧. 面对app抄袭成风的 ...
- 我想外包开发一个APP,需要多少钱,多少时间?
在一个阳光明媚的下午,我正瘫坐在椅子上改bug.忽然有人给我发微信:“我想做个app,多长时间,多少钱?” 从我从业iOS开发到现在,这个问题被问过无数次,比那句:“你是程序员,那你会修电脑吗?”还要 ...
- 后移动互联网时代:到底还要不要开发一个App?
后移动互联网时代,到底是什么样的一个时代? 首先,后移动互联网时代中,产生头部应用的几率变小了,像微信这样巨头式的App很难在产生第二个.其次,后移动互联网时代,物联网发展迅速,所有的智能硬件都需要一 ...
- 成都开发一个app大概好多钱?
目前,移动APP已成为很多小企业业务销售的新渠道之一,于是问题来了,一般想到要开发一个自己的app,就想问:开发一个app好多钱?去百度.360.搜狗等等平台去找相关的app开发公司咨询或者问问朋友有 ...
- 开发一个App要多少钱?APP开发报价单,APP开发外包有哪些注意事项-广州达到信息www.ddapp.com.cn
来源:广州达到信息著作权归广州达到信息所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作为一个APP开发从业者,经常会有人问到:开发一个App要多少钱?下面针对这个问题来好好解答解答正经的谈 ...
- 开发一个App的成本是多少?
英文出处:savvyapps.欢迎加入翻译小组. 在最近的一个会议上,一个叫Bob的老顾客引用了<App Savvy>(<放飞App:移动产品经理实战指南>)中探讨研发一个io ...
- 行内人解读开发一个App需要多少钱?
对于很多互联网的创业者来说,评估前期的创业成本是很重要的.在这几年的创业大潮中,伴随着“互联网+”和“互联网思维”的普及,很多创业项目选择了开发app作为创业项目的载体.在我接触到的很多创业者,找Ap ...
随机推荐
- Space.js – HTML 驱动的页面 3D 滚动效果
为了让我们的信息能够有效地沟通,我们需要创建用户和我们的媒体之间的强有力的联系.今天我们就来探讨在网络上呈现故事的新方法,并为此创造了一个开源和免费使用的 JavaScript 库称为 space.j ...
- 带你秒学JavaScript
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理.是静态网页转变为动态的 ...
- 应用matplotlib绘制地图
#!/usr/bin/env python # -*- coding: utf-8 -*- from math import sqrt import shapefile from matplotlib ...
- [Android]在Adapter的getView方法中绑定OnClickListener比较好的方法
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4146512.html 给ListView中每个item绑定点 ...
- iOS开发之图片分辨率与像素对齐
像素对齐的概念 在iOS中,有一个概念叫做像素对齐,如果像素不对齐,那么在GPU渲染时,需要进行插值计算,这个插值计算的过程会有性能损耗. 在模拟器上,有一个选项可以把像素不对齐的部分显示出来.  ...
- Android读取自定义View属性
Android读取自定义View属性 attrs.xml : <?xml version="1.0" encoding="utf-8"?> < ...
- Android C代码回调java方法
本文将讲述下列三种C代码回调java方法 1.c代码回调java空方法 2.c代码回调java int类型参数方法 3.c代码回调javaString类型参数方法 方法都差不多,先看c代码回调java ...
- 如何制定tomcat部署时自己定义的docBase路径
装了tomcat后发现tomcat安装在系统跟路径地下,每次部署的时候挺麻烦的,于是想指定一个自己定义的应用部署的路径: 以下是如何指定,相关文档请查看https://tomcat.apache.or ...
- 利用Scala语言开发Spark应用程序
Spark内核是由Scala语言开发的,因此使用Scala语言开发Spark应用程序是自然而然的事情.如果你对Scala语言还不太熟悉,可 以阅读网络教程A Scala Tutorial for Ja ...
- js 继承
ECMAScript只支持实现继承(继承实际的方法),主要依靠原型链来实现. 1.原型链 基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法. 示例: function SuperType ...