zoukankan      html  css  js  c++  java
  • 我是如何在Tizen app大赛中获奖的

    我是如何在Tizen app大赛中获奖的

     

    20139月底,我才决定参加Tizen app大赛,这时离大赛结束时间只有下40来天了。时间非常紧迫,为了了解在大赛中获奖的概率,先分析了一下自己的劣势和优势。

     

    先说劣势吧:

    • 我从来没有写过真正意义的app。虽然从事mobile开发已经有七八年时间了,但都是在搞像GUI,内核,多媒体,浏览器和通讯这些底层的东西。
    • 我对Tizen平台一无所知。之前从来没有看过任何Tizen相关的资料,下了Tizen的代码和SDK,看了一下计算器的代码,发现开发NativeTizen应用程序非常麻烦,一个简单的计算器居然有近万行的C++代码。加上熟悉TizenAPI40天还不够写个计算器这样的小程序!
    • 我不懂CSS,对HTML了解也不多。在了解到开发Native应用程序的困难后,我发现TizenHTML5的支持非常棒,我决定用HTML5来开发应用程序。但是HTML5开发应用程序并不简单(否则Kendo-uiSencha Touch这样HTML5 App框架也不会卖这么贵),何况我还是个小白!
    • 我不会美工,也没有美工朋友。事实上,我甚至不会用Photoshop缩放一张相片。即使采用扁平化风格设计,尽量减少图标的使用,应用程序的启动图标总是少不了的。
    • 我的英文不行。以前在外企做过几年,虽然口语不行,用英文写个邮件还是可以的。而现在好多年没有写过英文了,水平比高中生强不了多少,让我用英文描述一下App的功能都难。
    • 缺乏创意。我的生活非常朴素,对新奇的东西没有什么冲动,很多东西都是流行好几年后,我还开始使用。这两年天天看《36氪》,《钛媒体》,《雷锋网》和《创业邦》等创业文章,时时被那些创客的创意所震精。
    • 可用的工作时间有限。我还在家休养,虽然康复得不错,但是为了健康着想,我规定自己每天在电脑前的时间不得超过3个小时。这意料着我只有3*40=120小时时间工作(当然根本没有周末了),也就是正常人的15个工作日,这包括学习,美工,文档,编程,测试,提交和解决各种想不到的问题。

     

    再说优势吧:

    • 编程能力娴熟。在这方面,我对自己是相当自信的,以前经常在同事面前吹牛说,编程能力比我强的人不多。我最熟悉的是C语言,不过javascript的水平也还不赖。用HTML5开发App当然离不开javascript了。
    • 学习能力很强。我主修的是机械电子,编程基本上是自学的,而且十几年来我也从来没有停止学习过。不管什么新东西,只要我有兴趣,通常都能在短时间内学会。
    • 熟悉各种App的界面风格。为了开发“画app吧”(www.drawapp8.com),我花了大量时间去研究各种app的界面风格,这两年时间,我把玩过数百个Android上的App,并在HTML5的画布控件上实现了一套完整的GUI系统,其中包括各种流行的GUI控件。
    • 擅长解决各种疑难杂症。虽然我缺乏需求方面的创意,但是在解决问题方面,我倒是想法很多,总是能以别人想不到的方法解决各种疑难问题。事实上,公司的同事对我的佩服也源于此,往往他们花两周时间解决不的问题,到我这里两个小时就解决了。
    • 有自己开发的大杀器-“画app吧”。“画app吧”(www.drawapp8.com)是我开发的一款非常好用的HTML5 App集成开发环境。经过一年多时间优化和完善,“画app吧”已经成为最用的HTML5 app开发工具了(呵呵,没有之一)。


    在分析自己的优势和劣势之后,先要做几个决定:

     

    • 是开发Native的应用程序还是HTML5的应用程序?这个答案很明显,当然是HTML5的应用程序。
    • 开发什么应用程序?我没有什么创意,开发什么新奇的东西是不现实的,幸好Tizen是一个新的平台,它需要大量实用的应用程序。答案也很明显,开发实用的应用程序。
    • 开发几个应用程序?时间只有40天,如果我只做一个应用程序,可以把它做得更细致一些,但这样风险也很大,一旦这个应用程序所属的分类里精品太多,则会全军覆没,白忙40天。如果做多个应用程序,让它们分散在不同的分类中,如果某个分类中竞争小,则获奖的概率很大。我对“画app吧”的开发效率很有自信的,所以决定开发多个应用程序。我瞄准了puzzle,工具,效率,天气和新闻等几个分类。

     

    为了先熟悉TizenApp审核流程,决定先改造几个以前写的HTML5 app。不过事情没有想的那样简单,问题接踵而至:

     

    第一个问题是美工问题。每个应用程序需要一个大图标(512x512)和一个小图标(117x117),网上找小图标很容易,要找512x512就很难了。直接放大当然不行,效果太差!这个问题让我郁闷了好几天,有天在散步时我灵机一动,决定把应用程序的界面截一张下来,把它加工成应用程序的图标。用GIMP做这个也不难,很快就搞定了,事实证明这个方法是有效的。

    第二个问题是英文太烂,提交一个TODO应用程序时,审核人员告诉我,应用程序的功能描述不清,Rejected! 这个让人郁闷啊,后来一想,为什么不上网看看别人怎么描述的呢?在网上搜索了一些相关app的英文描述,很快这个问题也解决了。

    第三个问题是Emulator运行不了。本来在“画app吧”的模拟器里运行正常,在Tizenweb simulator里也是正常的。问题就出在TizenSimulator缺乏像文件选择或调用外部程序这些功能,而且它的文件系统APIemulator也不一样,所以AppSimulator上运行正常,审核人员说在实际设备上运行不了。这个问题浪费了我好几天时间,后来SDK升级到2.2.1时,Emulator可以运行了,不过HTML5 App的界面一片漆黑,我只好把App的屏幕截图出来,通过看图工具查看界面效果。

    第四个问题是时间问题。本来时间就紧,又出现这样那样的问题,同时还要修改在此过程中发现的“画app吧”本身的问题。本来是预计开发25app的(有几个拼图和连连看只是换下图片),结果只提交了16App,而且还有一个没有通过审核。就在大赛要结束前,Tizen突然宣布再延期38天,这对我来说是个利好消息。最终在128号前做了25App,提交了24App,其中通过23个。有一个App是像素级抄袭一个Android App的,虽然我很喜欢这个App,但我最后还是决定不提交它了。

    由于各种问题,有个App被拒了5次,当时我有点火了,不过反过来一想,审核人员或许更火,Ta免费给我做测试,我应该感谢Ta啊。所以后来每次被拒,我都感到有些歉意。

     

    提交最后一个App时,App的编号已经9200多了,还剩下2天时间,估计最终提交的App不会超过10000个。我在一个TizenQQ群中了解到,他们的App居然没有一个通过审核,才知道原来审核还是很严格的,当时猜测大赛结束前通过审核的App不会超过7000个。

    提交了最后一个App,虽然心里有点忐忑,还是信心很足的。最好的情况大概是有3App获奖,最差的情况是只有一个App获奖。比赛结果是后面一种,虽然有一点点失望,还是蛮高兴的。

     

    最后介绍一下“画app吧”(www.drawapp8.com,它是帮助我获奖的最大功臣:

     

    JQMobileKendoUISencha Touch这些鼎鼎大名HTML5的组件库,为什么还要开发“画app吧”?原因很简单:HTML5根本不适合开发Mobile App

     

    • HTML是文档为而生的,这是它的基因。它适合展示内容给读者,但不适合开发交互式极强的App。所以不管你怎么努力,用HTML5开发的App,和网页相比它像App,和原生App相比它更像网页。
    • HTML5的表现力弱爆了。HTML5有一些基本的控件,像按钮,文本和选择框等。还可以通过CSS包装出像ListView等这类常用控件。但就是在上面提到几个HTML5组件库中,都缺乏现代App中流行的控件,像Sliding Menu, 复杂一点Page Viewer等等,
    • HTML5开发App的过程相当复杂。至少我没有学会,你可以说我笨。不过Sencha Touch能卖这么贵,一定是有它的道理,JQMobile做得不好用,也一定有它的道理。
    • 性能问题。HTML5 App慢的原因主要有两个,一是本身Layout和渲染慢,二是打开窗口通常是加载新的页面。


    “画app吧”就是要解决以上这些HTML5 App的硬伤:


    • 为了解决HTML文档基因的影响,“画app吧”完全抛弃了HTMLCSS,而是在HTML5 Canvas上重新实现的一套GUI。我以前深入研究过X Window, DirectFB, GTK+AndroidGUI系统,并实现过一个开源嵌入式GUI FTK。“画app吧”的GUI是我在总结多年经验的基础上,开发的一套GUI,它实现简单,功能强大。用“画app吧”开发的App,基本上看不出和原生App的差别。
    • “画app吧”的GUI完全是自己实现的,在实现它的过程中,我研究了数百个App,分析它们使用的控件,实现了现代App需要的各种控件,其表现力大大超出传统的HTML5
    • “画app吧”开发App非常简单,它让你的开发效率提高5倍以上!App的界面完全可视化的完成,甚至你可以不用写一行代码开发一个App。这就是为什么我能在Tizen App大赛中,在短时间内开发25个应用程序的原因。
    • “画app吧”通过三种方法提高性能,一是采用硬件加速实现的Canvas渲染界面,二是使用高效的Layout机制,三是所有界面用Json描述并放在一个文件,打开新窗口在瞬间完成。

     

    呵呵,顺便给自己做点广告:承接各种基于“画app吧”的定制IDE开发:

    1. 定制HTML5 App集成开发环境。如果您有自己的App SDK,我们可以为您开发一个集成开发环境,把您的SDK包装到里面,让开发者使用更加方便。
    2. HTML5TV集成开发环境。如果你有自己的TV平台和SDK,我们可以为您开发一个集成开发环境,把您的SDK包装到里面,让开发者使用更加方便。
    3. 如果您为客户开发微站,轻应用和微信公共号等,我们也可以为您提供更高效的开发工具。
    4. 定制嵌入式系统的集成开发环境。如果您有自己的硬件平台和SDK,我们可以为您开发一个集成开发环境,把您的SDK包装到里面,让开发者使用更加方便。开发语言可以使用JSLua
    5. 如果您觉得“画app吧”不能满足您的特殊需求,我们也可以为您量身定制。
    6. 如果您想获得“画app吧”的运营权,也可以和我联系xianjimli at hotmail.com

     

    “画app吧”对个人开发者永久免费,但由于目前文档还不太完善,不建议个人开发者使用(当然欢迎试用了)。我将在后续写一系列介绍“画app吧”的设计与实现的文章和使用文档。

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    希望走过的路成为未来的基石
    第三次个人作业--用例图设计
    第二次结对作业
    第一次结对作业
    第二次个人编程作业
    第一次个人编程作业(更新至2020.02.07)
    Springboot vue 前后分离 跨域 Activiti6 工作流 集成代码生成器 shiro权限
    springcloud 项目源码 微服务 分布式 Activiti6 工作流 vue.js html 跨域 前后分离
    spring cloud springboot 框架源码 activiti工作流 前后分离 集成代码生成器
    java代码生成器 快速开发平台 二次开发 外包项目利器 springmvc SSM后台框架源码
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167361.html
Copyright © 2011-2022 走看看