每个人都是独立的个体,每个人身上都有不同的需求,如果有款产品能让你接近百分百满意,那可能只有为自己量身打造才可以。互联网APP也一样,对于想要为自己量身打造APP的人来说,难点更多可能在于:没有编程经验,编程门槛太高。
By Benzoix / Freepik
Google 早在 2010 年就洞悉并解决了这一问题。它开发了一种面向大众的编程工具,这个工具可以让任何熟悉或不熟悉程序设计的人来创造基于Android操作系统的APP,并向所有人免费开放。它就是App Inventor。
面向手机的块语言
App Inventor 是一款采用拖曳操作的可视化编程工具,主要用于构建运行在安卓平台上的移动应用。现由麻省理工学院(MIT)维护及营运。
来自MIT App Inventor官网
App Inventor 提供了基于 Web 的图形用户界面设计工具,你可以用它设计应用的外观,然后像玩拼图游戏一样,将“块”语言拼在一起来定义应用的行为。
图 P-1 显示的代码块来自于一款应用的早期版本,它的开发者 Daniel Finnegan 是一名从未学过编程的大学生。你能猜出这是一款什么样的应用吗 ?
图 P-1:一款自动回复短信的应用
这是一款短信“应答机”应用。开车时启动它,就可以对收到的短信进行自动回复。
相比传统的程序代码,这些代码块更容易理解。你也可以结合自己的需求,制定一款应用,比如问答应用,把它作为一种别出心裁的求婚方式,发给你的那一位:“问题 4:你愿意嫁给我吗?如果愿意,按下按钮发送短信。”真的有人创建了一个类似的 App Inventor 应用来求婚,而对方居然说“愿意”!然后就可以官宣加心晒结婚证了。
用App Inventor做什么
可做的事情简直是太多了!
把开发当作游戏
为手机编写应用本来就很有意思,而使用 App Inventor 则更增添了探索和发现的乐趣。只需在 Web 浏览器中打开 App Inventor,连上手机,并像图 P-1 中那样把一些块拼在一起,立即就能在手机上看到你的应用,并且能够与之交互。于是你开始编程,你发邮件给朋友们,让他们发短信来测试你的应用;或者用刚写好的应用来控制一个乐高 NXT 机器人;再或者拔下手机,走到户外,去验证一下应用中的位置传感器是否有效。
创建原型应用
有了创建一款应用的灵感,是吗?那就快速地创建一个原型,切莫随手记在餐巾纸上,或者干脆让它随风飘散。什么是原型呢?它是你构思的模型,是有待完善的作品。用文字来表达想法,就像是写一篇散文给你的朋友或爱人;而用 App Inventor 创建一个原型,就像是写给风险投资人的一首诗。因此我们说,对于移动应用的开发来说,App Inventor 就像一张电子餐巾纸。
构建个性化应用
目前,在移动应用的世界里,我们只能被动接受那些推送过来的应用。你就没有抱怨过吗?我们更期待那种个性化的应用,或者至少让我们能够有所取舍。使用 App Inventor,你就可以创建出更贴近自己需求的应用。例如,“打地鼠”游戏中,有一个随机移动的地鼠,每次触碰到它你都可以增加得分,你完全可以把教程中的地鼠替换成你想要的形象,比如你弟弟妹妹的照片,或者随便什么你能想到的东西,只要你喜欢!同样,在出题应用中,你可以轻而易举地将那些问题替换成你感兴趣的问题,比如,你最喜爱的音乐、你的家族历史,等等。
开发完整的应用
App Inventor 不只是一个原型开发系统或界面设计器,它也可以用来创建各种完整的应用。它所使用的块语言提供了所有基础的编程指令,如循环语句及条件语句等,只不过是以“块”的方式来呈现而已。
教学
无论是对于初中、高中还是大学的学生,App Inventor 都是一个非常出色的教学工具。它的出色不仅仅是对计算机科学而言,对于数学、物理、工商管理以及几乎任何其他学科来说,它也是一个了不起的工具。重要的是在创造中学习,而不是死记公式。例如,你创建了一个寻找最近医院(或商场)的应用;又比如,用马丁 · 路德 · 金和马尔科姆 · X 的视频或演讲的录音片段来创建一个多媒体的问答应用,远比写一段黑人历史的文章来得生动。
为什么要用App Inventor
很多人说 App Inventor 之所以易用,是因为它采用了可视化操作界面以及可拖曳的块语言。但这背后究竟意味着什么呢?为什么 App Inventor 会易于使用?
无需记忆和输入指令
对于初学者来说,学习编程有两大困难:一是要输入代码,二是要面对那些计算机弹出的令人费解的错误信息。这种困难带来的挫折感,往往使初学者还没体会解决逻辑性问题的乐趣,就中途放弃了。
你要做的只是选择
在 App Inventor 中,组件和代码块被分门别类地放在不同的抽屉中,触手可得。编程的过程就是找到这些块并把它们拖到程序中来实现你预想的功能,你不需要记住那些指令或查阅参考手册。
限定代码块之间的匹配
同那些让程序员感到挫败的神秘错误信息相比,App Inventor 的块语言从一开始就排除了很多犯错的机会。例如,如果一个代码块要求你输入数字,你就无法输入数字以外的任何字符。这虽然不能消除所有的错误,但起码会排除很多低级错误。
事件的即时处理
在传统编程语言诞生的那个年代,编写程序就是按照特定的顺序输入一组命令,就像厨师照着菜谱的流程做菜一样。但是在图形用户界面中,特别是在移动应用中,程序将不再按照某个特定的顺序执行,而是由那些随时可能发生的事件(例如,收到短信或来电)触发运行。因此,大多数的程序都不再采用这种菜谱的模式,取而代之的是对事件的处理。事件处理程序的工作方式是“当某事件发生时,做某事”。在传统的语言(如 Java)中,你要了解类、对象,以及一种叫作“事件侦听器”的特殊对象,每个侦听器代表一个事件。而在 App Inventor 中,你可以拖曳出一个“事件块”来表示“用户点击按钮”或“收到短信”之类的事件。
适合创建哪些类型的应用
用 App Inventor 可以创建各种不同类型的应用。只需发挥你的想象力,就能创建出各种既有趣又实用的应用来 。
游戏
一般人们都会从简单的应用开始,例如,“打地鼠”游戏,油漆桶应用(在朋友的脸上绘画)。然后随着不断进步,你可以开始按照自己的想法做一些更复杂的游戏,如“吃豆子”“太空侵略者”等。你甚至可以使用手机中的传感器,通过倾斜手机来控制游戏中角色的移动。
教学类应用
App Inventor 不仅限于制作简单的游戏,也可用于创建信息和教育类应用。问答应用可以帮助学生们在考试前更好地复习;出题与答题应用,允许用户为自己定制一份考卷(想想那些长途旅行的家长们会多么喜欢这个应用!)。
位置感知应用
因为 App Inventor 提供了访问 GPS 位置传感器的功能,因此可以构建一个定位应用,知道自己在哪儿;也可以构建一个停车定位应用,帮你记住停车位置;或者一个找人的应用,在音乐会或大型会议中显示你的朋友或同事的位置;或者一个定制的导游应用,为你所在学校、工作场所或博物馆预置游览路线。
高科技应用
你还可以创建以下类型的应用:条码扫描、聊天、听力练习(文字识别)、音乐播放、音乐制作、视频播放、检测手机的方向和加速度、拍照以及打电话,等等。如果把智能手机比作一把功能多样的瑞士军刀,那么编写程序就是操作这把刀的技术,而 App Inventor 让这门技术更易于掌握。
短信应用
“开车不发短信”就是一个短信类应用的简单案例。你还可以编写一个自动问候的应用,定时给你的亲友们发送诸如“想念你”之类的短信;或者类似于“广播中心”那样的应用,帮助协调大型活动;再或者像《美国偶像》节目那样的投票应用,让你的朋友通过短信来投票。所有这些类型的应用都可以用 App Inventor 来实现。
控制机器人的应用
机器人控制类应用,教你如何编写程序来控制乐高机器人。你的手机可以充当机器人的遥控器,或者说你的程序就是机器人的“大脑”,可以伴随它到处游走。机器人与手机之间通过蓝牙通信,你也可以使用 App Inventor 的蓝牙组件创建其他类似的应用,来控制周围的蓝牙设备。
复杂应用
App Inventor 大大降低了编程的门槛,让你在短时间内就可以创建出很炫的高科技应用。但这门语言的功能并不简单,它提供了循环、条件以及其他的语言要素与逻辑结构,可以编写出逻辑复杂的应用程序。在尝试创建应用的过程中,你会惊奇地发现解决这些逻辑问题是多么有趣。
基于 Web 的应用
App Inventor 也提供了应用与 Web 之间的通信手段。你可以写一个应用,从 Twitter 或 RSS 订阅中抓取数据,或者访问亚马逊网上书店,通过扫描条码来查询一本书的线上价格。
编程大众化的时代已经到来
旧金山大学的学生从零基础开始,创建了很多有趣的应用。比如一个英语专业的学生首创了“开车不发短信”应用;两个通信专业的学生创建了“安卓,我的车在哪儿?”应用;而一个国际研究专业的学生创建了“广播中心”应用等。
媒体也开始关注 App Inventor。《纽约时报》称 App Inventor 为“DIY 应用开发软件”。《旧金山纪事报》撰文报道了旧金山大学的学生们的工作:“谷歌让普通大众变成了应用的生产者。”《连线》杂志则采访了“开车不发短信”应用的作者 Daniel Finnegan,并断言:“Finnegan 的故事表明,编程大众化的时代已经到来。”
现在,在世界各地,App Inventor 已经被列为初中及高中课程。来自 28 个国家的 2500 多位女生参加了“技术创新挑战”项目(一个面向高中女生的课外项目);在高中开设的试点课程——计算机原理的预备课程(http://mobile-csp.org/)中,也加入了 App Inventor 的内容;在许多大学新开设的入门课程中,也都有 App Inventor 的一席之地。数千名爱好者、商人、求婚者以及“能工巧匠”们正漫游在 App Inventor 的网站上,创建自己的应用。
国内App Inventor推广先驱——金从军
一个半路出家的程序员,在新浪微博、新浪博客等社交媒体上自称“老巫婆”,Adobe认证工程师及培训师。2014年春创办www.17coding.net网站,开展与App Inventor相关的教学及技术咨询工作。
作品有
《写给大家看的安卓应用开发书:App Inventor 2 快速入门与实战》(图灵程序设计丛书),2016 年由人民邮电出版社图灵公司出版,难度等级为一级,适合初学者;
《App Inventor开发训练营》(图灵程序设计丛书),2018年由人民邮电出版社图灵公司出版,难度为二级,要求读者对于 App Inventor 编程有一定的基础。
《App Inventor 开发探底——俄罗斯方块开发笔记》(青少年科技创新丛书),2016 年由清华大学出版社出版,难度等级为三级,适合对 App Inventor 较为熟悉的读者。
译作有《写给大家看的安卓应用开发书:App Inventor 2快速入门与实战》《App Inventor 编程实例及指南》(图灵免费电子书)等。
当你心中涌起了某种冲动,想动手做点什么的时候,这种无比珍贵的冲动就是你最好的老师,它给了你一个明确的方向,以及内在的动力。冲动之后,你开始思考,甚至跃跃欲试,不过也许会有一丝畏难情绪,因为在那些未曾经历的过程中,会有很多难题需要解决,你甚至会怀疑自己是否有勇气克服它们。于是拖延开始了。
别担心,这是我们的通病,我的奶奶曾经教诲我的父亲: “眼是懒蛋,手是好汉!”一旦开始动手,那些看似玄妙的难题,便随着我们孜孜不倦的潜心钻研而一一化解了。
此时此刻,你心中的那些埋藏许久的梦想是否已经苏醒了呢?就让我们从一个简单的梦想开始,踏上充满乐趣与挑战的编程之旅!
David Wolber,Hal Abelson,Ellen Spertus,Liz Looney 著
金从军 译
编程大众化时代已经到来!
13款为非专业程序员搭建的App示例,给所有人亲身参与IT技术变革的机会
App Inventor主力开发人员打造,权威、实用
没错,你有能力创建自己的安卓应用,而且一点都不难。App Inventor 2,让你分分钟成为应用开发者!
本书由浅入深地介绍了强大的可视化编程工具App Inventor 2,任何人都可以用它来开发自己的应用。作者汇集了13个有趣的例子,读者可以跟随书中的讲解,亲手创建这些应用,从实践中学会开发安卓应用的基本知识与技术。另外,作者还从计算机科学及工程技术的角度出发,给出了详尽的开发指南,力图让读者对创建应用获得更本质的理解。
本书在美国出版后引起很大反响
“App Inventor让DIY应用开发软件变成现实。”
——《纽约时报》
“谷歌和麻省理工学院让普通大众变成了应用的生产者。”
——《旧金山纪事报》
“本书适用于所有年龄段的读者。我的学生喜欢扩展书中的例子,这种再创造的工作让他们乐此不疲。真是一本了不起的移动开发入门书!”
——Ralph Morelli,剑桥大学三一学院教授
“全球近200万的用户实践证明,App Inventor让普通的App消费者变成了创造者……本书作者是当之无愧的世界一流教师和软件工程师,他们参与了App Inventor的开发、测试以及文档整理工作,还撰写了这本奇妙的书,对此我深表谢意。”
——Mark Friedman,谷歌公司App Inventor for Android项目组技术主管及经理
在国内
图灵引进这本书后,邀请国内App Inventor汉化作者,App Inventor编程推动者金从军老师担任翻译。除了翻译本书,金老师还编写了电子书《App Inventor开发集锦》,并运营一个公众号(老巫婆的程序世界),基本每日都会更新App Inventor的学习视频,感兴趣的可以关注:
京东购
当当购
亚马逊购
作者:金从军
定价:99.00元
页数:472
中科院计算所上海分所所长、上海张江科技创业投资有限公司首席科学家、起点创投合伙人孔华威//中国电子学会创客教育专家委员会主任谢作如 联袂推荐
这是一本实例书。书中包含15个完整的应用,覆盖了游戏、教学、工具、信息管理以及网络应用等。提供的这些例子,就是一些可供模仿的样板,它教会你如何描述一个应用,如何解决实际问题,以及如何从具体案例中总结出共通的经验。
目录
第1章 水果配对
第2章 计算器
第3章 九格拼图
第4章 天气预报——基础版
第5章 天气预报——图片版
第6章 打地鼠
第7章 幼儿加法启蒙
第8章 简易家庭账本——登录
第9章 简易家庭账本——导航菜单与收入记录
第10章 简易家庭账本——系统设置
第11章 简易家庭账本——支出记录
第12章 简易家庭账本——收支查询
第13章 简易家庭账本——年度收支汇总
第14章 简易家庭账本——分类汇总及其他
第15章 数学实验室(一):鸡兔同笼
第16章 数学实验室(二):素数问题
第17章 数学实验室(三):公约数与公倍数
第18章 数学实验室(四):绘制函数曲线
第19章 寻找加油站
第20章 贪吃蛇
第21章 因式分解之十字相乘
京东购
当当购
亚马逊购
文末福利
小伙伴留言说说你最想开发什么样的APP?或者你见过什么样好玩的APP让你印象深刻?本期送出以上两种图书,精选评论中随机挑选5人送书,截止到10月22日14:00。
欢迎大家畅所欲言。
☟ 更多零基础编程图书