一个App完成入门篇(一)-从Hello world开始
程序员学习新技术都是通过Hello World开始的,我们也不例外。第一课我们简单了解利用do平台开发App的基本流程,能了解到的知识点是:
- 开发环境搭建
- 创建开发者账号
- 新建项目
- 拖拽一个组件
- 修改js代码
- 手机查看效果
1. 开发环境搭建
do平台的开发的基本开发工作都是围绕DeviceOne提供的IDE(DevinceOne Stduio),我们通常简称为设计器。
设计器是基于Eclipse核心的RCP,熟悉Eclipse的的开发人员应该很熟悉基本的操作。设计器是跨平台的,可以在Windows,Mac下运行。以后可以支持更多,比如Linux。基本的运行条件是需要Java Development Kit(JDK7)及以上版本。
下载页面是这里

| 支持操作系统 | 设计器下载 | JDK版本 | 大小 | |
|---|---|---|---|---|
| Windows 32位 | 32位Windows版本 | 32位JDK7及以上版本For Windows | 140M左右 | |
| Windows 64位 | 64位Windows版本 | 64位JDK7及以上版本For Windows | 147M左右 | |
| MAC 64位 | MAC版本设计器 | 64位JDK7及以上版本For Mac | 144M左右 |
注:设计器运行碰到启动的问题基本上和Java环境相关,可以参考设计器运行常用问题说明
2. 创建开发者账号
do平台提供的开发者服务有一些服务项目需要在线,创建一个开发者账号是必须要的。注册没什么特殊,简单略过。申请地址是这里
3. 新建项目
下载设计器后,启动的界面类似常规的Eclipse界面,do平台基本的开发工作都是围绕着设计器,基本上所有的工作步骤都在设计器上操作:
首先需要新建一个项目,点击File-New-DeviceOne Project或者直接在Script Explorer窗口的右键New-DeviceOne Project:
新建项目需要联网,输入用户密码验证码后登陆。但是创建完之后是支持离线开发和调试的。
4. 拖拽一个组件
新建完成后,会自动生成一些文件。
双击打开index.ui,我们可以看到一个可视化的设计区域和右边的UI备选区,我们从右边找到do_Label拖拽到设计区
接着选中这个组件,然后在Properties窗口把它的bgColor改成00FF00FF(前6位表示颜色,后2位表示透明值),我们可以马上看到Label的背景变成了绿色效果
5. 修改js代码
我们再来双击打开index.ui.js,我们可以看到JavaScript的编辑器,修改一行代码,把Hello World改成Hello DeviceOne。在js文件里可以修改应用运行的逻辑。表示点击这个按钮,alert出一个信息

6. 手机查看效果
我们最后来手机上看看运行的效果。
首先我们需要安装一个调试用的App,打开这里扫描里面二维码安装一个doDebugger的App,Android,iOS手机都可以,windows和winphone版本不支持二维码扫描安装,这一课暂时不提。安装完如下图。这里提一下,这个调试App是可以定制的,这里暂时不详细解释。

然后我们回到设计器中的Service右键点击Create按钮,如果弹出一个选择窗口,请选择刚创建好的test项目。创建后,记录下显示的ip地址和port号。请确保state是Running


继续我们回到手机,打开doDebugger这个app,在服务地址处输入刚才我们记录下的地址和端口。请确保手机和电脑在同一网段。然后点击更新,把代码从电脑上同步到手机上。如果更新提示失败,请参考这里.

最后我们点击进入,就可以看到我们在设计器上设计的效果,点击按钮,会弹出Hello DeviceOne
这一课我们就到这里,是不是觉得很简单了。就这样,我们在设计器上可以继续修改代码,修改UI,然后再次点击更新按钮和进入按钮就可以实时的看到开发的效果。一直到这个App完成所有你需要达到的功能。
一个App完成入门篇(一)-从Hello world开始的更多相关文章
- 一个App完成入门篇(七)- 完成发现页面
第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...
- 一个App完成入门篇-终结篇(八)- 应用收官
经过以上几步的学习,我们终于来到最后一个步骤了,应用APP也接近尾声. 通过之前的几节教程,不知道您对使用DeviceOne开发一个应用是不是已经得心应手了,本节教程将教会大家如何在开发完成之后通过D ...
- 一个App完成入门篇(六)- 完成通讯录页面
第五章和第六章间隔时间有点长,对不起大家了.下面继续. 本节教程将要教会大家如何加载本地通讯录. 导入项目 导入通讯录 自定义js模块 发送和订阅page消息 将要学习的demo效果图如下所示 1. ...
- 一个App完成入门篇(五)- 完成新闻页面
本节教程将介绍如何用DeviceOne简单而高效的完成一个新闻页面. 导入项目 数据模板分离MVVM模型 自定义事件 展示新闻 九宫格展示 将要学习的demo效果图如下所示 1. 导入完整项目 本节示 ...
- 一个App完成入门篇(三)-完善主框架
本节教程将继续带领大家完善教学demo 导入项目 完善主框架 完成viewShower子视图 打开新页 启动动画 将要学习的demo效果图如下所示 1. 如何导入完整项目 本节示例demo请参考下载地 ...
- 一个App完成入门篇(二)-搭建主框架
通过第一课的学习,你已经掌握了如何通过debug调试器来跟PC上的设计器联调来实时查看UI设计效果.调试代码了,接下来通过一系列的demo开发教学你将很快上手学习到如何开发一个真正的App. 要开发A ...
- 一个App完成入门篇(四)- 完成反馈页面
上一节中我们学会了如何通过点击不同按钮切换页面,这节专注于完成反馈页面的功能以及细节动画. 导入项目 添加新组件 同步新组件 完成页面布局 输入时加动画效果 弹出日期选择 直接引用UI页面 将要学习的 ...
- 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序
如何在Visual Studio 2017中使用C# 7+语法 前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
随机推荐
- javascript面向对象(三)
主要内容: 利用原型链的方式实现继承: 原型继承的特点:即继承了父类的模板,也继承了父类的原型对象. 类继承:只继承模板(借用构造函数的方式继承). 利用call.apply方法实现: 混合继承: 扩 ...
- Jquery一般操作归纳
一.DOM操作分类 1.DOM Core getElement(s)获得元素 2.HTML-DOM document.对象/操作标签的属性 3.CSS-DOM ...
- Masonry记录——iOS适配
Masonry是iOS适配的第三方库,比较好用的一个,本人用的也不多,简单了解一些常用的方法,自己学习中,记录下来共勉. Masonry下载地址:https://github.com/SnapKit/ ...
- fool
from PIL import Imageimg = Image.open("D:\\pic2\\CZA3302.png")(w,h) = img.sizeim=img.conve ...
- BOOTSTRAP定制
1.补充:栅格系统中调整列的位置/顺序 (1)方法1:偏移量(col-*-offset-*) (2)方法2:对列进行push/pull操作 col-lg-pull-1 ~ ...
- css+js定位到屏幕中间
ex:让一个div始终显示在屏幕中间 一. css:#idName{position: absolute;z-index: 999;width: ?px;margin-top: ?px;}//此处的初 ...
- 确定比赛名次---HDU1285(拓扑排序)
http://acm.hdu.edu.cn/showproblem.php?pid=1285 题目大意: 给你每场比赛的成绩,让你根据成绩把排名弄出来 分析: 本来我是用普通方法写的,然后就一直wa, ...
- C语言小练习二
题目要求: 编程实现功能:将4行4列数组的左下三角设置为下图所示的数据.43 7 2 6 91 5 8 10 程序源码: #include <stdio.h> int main(void) ...
- iframe自适应高度,根据src中页面来得到。
在页面布局时,div+iframe能根据具体的大小进行布局.但,对于iframe的适应大小,仍需js获取内部html文件来改变. function reinitIframe(){ var iframe ...
- linux进程间通信-共享内存
转载:http://www.cnblogs.com/fangshenghui/p/4039720.html 一 共享内存介绍 共享内存可以从字面上去理解,就把一片逻辑内存共享出来,让不同的进程去访问它 ...