Android 构建混合应用程序,从哪里开始?

Android 构建混合应用程序,从哪里开始?,android,ios,cordova,hybrid,crosswalk-runtime,Android,Ios,Cordova,Hybrid,Crosswalk Runtime,我知道这是一个“开放”的问题,但我不知道从哪里开始。首先让我告诉你一些我的经验/背景,以便你了解我的水平: 用以前的行话制作cd-ROM 在HTML3.2时代开始了web/前端开发,在XHTML很热的时候就停止了 使用JavaScript1.2一直到1.6左右,后来开始使用Jquery Actionscript高达2.0,用于构建网站和游戏 做了相当多的PHP/mySQL开发。构建定制CMS和更高版本的Drupal模块开发 所有这些都是在实习期间或作为一名自由职业者,通过书籍之类的帮助进行自我

我知道这是一个“开放”的问题,但我不知道从哪里开始。首先让我告诉你一些我的经验/背景,以便你了解我的水平:

  • 用以前的行话制作cd-ROM
  • 在HTML3.2时代开始了web/前端开发,在XHTML很热的时候就停止了
  • 使用JavaScript1.2一直到1.6左右,后来开始使用Jquery
  • Actionscript高达2.0,用于构建网站和游戏
  • 做了相当多的PHP/mySQL开发。构建定制CMS和更高版本的Drupal模块开发
  • 所有这些都是在实习期间或作为一名自由职业者,通过书籍之类的帮助进行自我思考
所以现在我坚持这个想法,为自己构建一个应用程序。我决定它应该是一个混合应用程序,因为我的目标用户非常少,但60%是iOS,我不想遗漏Android。此外,我已经熟悉HTML5/CSS3,并开始为我的应用程序开发组件。 该应用程序的基本概念是,它是谷歌功能之上的一层:个人资料、日历、圆圈和闲逛。用户将(最终我希望)能够为其他用户创建事件,以便rsvp,他们将能够彼此添加为好友,并就事件进行聊天。这是一小步,但对我来说却是一大步:)

我正在考虑使用Android版本的Crosswalk项目来解决混合应用程序开发的最大问题

在过去的几个月里,我一直在准备阅读,读得越多,我知道的似乎就越少。以下是我认为我应该更多了解的东西

  • Node.js
  • 大口喝
  • 开发环境工作(我曾经在Homesite工作过,后来是Dreamweaver-别笑)
  • 包装工具等
  • 人行横道工程
现在我不是在寻找一些拖放软件包来在3天内构建一个应用程序。我不想走简单的路线,我不介意一点学习曲线。我在Win8机器上工作,我知道这不是最优的,但我不能改变这一点

现在我该从哪里开始?我自己也在想NPM,但你们可能不这么想。你认为我需要学习什么东西才能让我走,有什么好书吗


谢谢你的建议

我可以和科尔多瓦分享我的经验

我像全栈开发人员一样工作,我非常擅长构建响应性强的网站,所以接触移动开发人员的自然步骤是尝试Cordova

首先,您可以开始构建完全响应的HTML文档,并尝试在目标设备上作为网页。 针对移动设备的一个很酷的东西是,您可以使用新的CSS3指令,而无需担心与旧浏览器的兼容性

首先,我按照本教程安装了Cordova。 打开项目上的文件夹/www,您可以像编辑网站一样编辑应用程序,也可以像调试普通网站一样使用浏览器进行调试

为了增强该功能,您将在github上找到许多插件,以扩展Cordova/phonegap项目的本机功能

我建议您也使用onsen构建一个框架,让您可以轻松使用移动UI

我能给你们的最后一个提示是,若你们的目标Android是在虚拟机上试用你们的应用程序,我会使用比SD快得多的Genymotion<
祝你的第一个应用程序好运

正如您所想象的,有很多框架可以从中开始

从您的技能来看,使用JS/HTML/css堆栈可能更好,但在本例中,您将在webview中创建一个混合应用程序。 在我看来,webview应用程序的质量是可以接受的,但由于他的工作效率,在某些情况下可能是最好的决定

另一个好的选择是。该框架允许使用javascript创建本机应用程序。React有自己的标记语言,非常类似于html。JS代码是使用嵌入式javascript引擎而不是webview在本机设备上执行的,因此,性能和体验可以与本机应用程序进行比较


最后,我的另一个选择是,我制作了一个框架,用于编写本机UI并共享每个平台的业务逻辑。您可以查看aj framework

Thanx,分享您的经验。我遇到过科尔多瓦,听起来很有趣。你的职位说服了我进一步调查。我不太确定。我不认为我想使用其他人的UI工作,然后覆盖内容,使其成为我的。我想我宁愿从头开始建造。Genymotion对我来说是新事物,但看起来很有趣。谢谢你!