仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6332|回复: 19
打印 上一主题 下一主题

[学习教程] IOS设计Android 程序框架计划仓酷云

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:40:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你可能还需要学习使用Xcode这个开发环境,接著你需要掏钱向苹果注册开发者权限,基本的帐号是99美金。本视频为“斯坦福大学iPhone开发教程”,51CTO将不断关注本视频教程的更新进度,为大家提供最新的视频。1、一些观点

形式的界说:

每一个形式都形貌了一个在我们的情况中不休呈现的成绩,然后形貌了该成绩的办理计划的中心。经由过程这类体例,你能够有数次地利用那些已有的办理计划,无需在反复不异的事情。
甚么是计划形式?

计划形式是在某种出格的情形下,针对某种成绩的某种典范、通用的办理办法。
我们是必要得当懂得并进修一些计划形式,在程序开辟过程当中,老是会触及到一些框架计划,模块计划之类的工具,假如能很好了解并运转计划形式,你所计划的模块或框架将会要不乱很多,由于这些计划形式它们都是通用的办理计划,是经由理论履历了的。
好比说,在程序里,大概会有关照模块,A模块的数据产生变更,B模块必要失掉关照,关于如许的必要,你大概会想到用"播送","动静"大概"回调"的体例来办理,切实其实,方才我所说的那三种也能办理,可是,这三种都是存在一些弱点,好比说播送,用Intent来传输数据很坚苦,关于"动静",没法很好的跟踪,关于"回调",有大概你A与B模块基本不成互相会见。此时,假如你会用察看者形式的成绩,这类成绩能够很轻松办理。
固然,这里是必要详细成绩详细剖析的,我次要的意义就是说,要得当使用形式,我们不克不及为了用形式而往用形式,我们是要用形式来办理我们实践的成绩。
观点完全性

关于观点完全性,在《人月神话》一书在有大批的论述,这里,我把我的了解写出来,与人人分享。
1)观点完全性是体系计划中最主要的思索要素。当你的体系范围越年夜,这一点表现得越分明。
2)为了猎取观点的完全性,计划必需由一团体大概具有共鸣的小型团队来完成。这一点很好了解,关于计划,可让一切的人介入,可是决意权在多数人手里,假如人人都想介入计划,这是基本没有举措保正体系计划是一致完全的。
3)要取得观点上的完全性,就必需有人把持这些观点,相似于贵族的民主统治。这里,关于团队中的项目司理或架构师必需对项目有相对的威望,否则,这个项目内里的就没法一致号召。
4)观点完全性体现有:
  1. 12345
复制代码
  1. -开辟过程当中,需求、计划、编码的分歧性-全部程序具有一致的作风,好比对话框款式,按钮作风,色彩等UI元素-全部程序详细一致的布局,好比分歧模块会见收集,它们的挪用体例分歧,比方异步会见都用回调体例关照了局,不异的功效应当提取成共通模块。-开辟职员能很好的实行需求职员和计划职员的企图。-有完全的文档,需求文档,计划文档,测试文档,处置流程的文档等。
复制代码
怎样坚持观点完全性
  1. 12345
复制代码
  1. -在轨制上赐与包管,产物的卖力人必需创建手艺上的相对威望-手艺卖力职员(SE,SL)必需严厉实行项目标需求,计划,必需深切到编码细节-在分歧阶段,坚持与一切职员的延续相同,勉励开辟职员提定见。-闪开发职员介入计划,但未定定计划-经由过程延续的反应和相同来完成模块重用
复制代码
2、计划之前应当做甚么

2.1共通类的计划

2.1.1Widget计划

TextView
EditText
Button
Titlebar
Toolbar
...
###为何要供应这些共通控件?###
一致字体巨细,如App字体不随体系字体变更而变更
一致UI式样,如Button,EditText具有不异的背景等
复用代码
2.1.2AdapterItems

依据式样,提取必要在AdapterView中显现的Item
复杂的复合结构
自绘制,从而进步滑动功能
-ListView中放Gallery时,进步高低滑动功能
-只管优化绘制
###数据驱动###
AdapterItems供应中心的办法
-setData(Objectdata)
-getData();
Adapter#getView完成加倍复杂
-完成复杂
-不会由于UI变更而变更
上面代码示例了Adapter#getView()办法的完成,它前往BookView,BookView供应办法来吸收数据,至于BookView的显现,则依据设置的数据来显现,这就是数据驱动UI。
  1. 1234567891011121314
复制代码
  1. @OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupparent){if(null==convertView){convertView=newBookView(getContext());convertView.setLayoutParameter(newAbsListView.LayoutParameter(150,150));}Bookbook=m_bookList.get(position);BookViewbookView=(BookView)convertView;bookView.setBook(book);returnconvertView;}
复制代码
2.1.3Dialog

扩大于Dialog类
供应Dialog封闭的事务
Dialog的高度随内容的变更而变更
能够设置按钮的笔墨,可见性,字体等办法
设置按钮点击事务的listener
要思索对话框的三个属性:Title,Contentarea,Actionbuttons
2.1.4Utility

-Log
DateFormat
Bitmap
Notification
SharedPreference
Environment
Device
...
2.2Task办理

线程只是一种机制,包管我们要完成的义务不运转在UI线程(也就是说不堵塞UI),完成的义务才是我们存眷的中心,因而,我们能够经由过程计划,把线程封装,让利用者基本感到不到是线程,他只用体贴他要做的事变就好了。
这里,我们能够计划一种"异步链式挪用"的框架,把线程举行了封装。利用都只必要如许用:
  1. 12345
复制代码
  1. newTaskManager().next(task1).next(task2).next(task3)..execute();
复制代码
这里,task1,task2,task3是按次实行的,举个例子:我们要会见收集,获得一个图片,利用这个TaskManager我们必要3个task,
task1:显现一个ProgressDialog。
task2:会见收集,创立bitmap。
task3:封闭对话框,显现bitmap。
这一点,能够参考CoreLib工程中的task.TaskManager类。
关于TaskManager,有以下几点必要注重:
-封装了线程
让挪用者只存眷本人的营业处置
包管按次链式地实行某一个义务
上一个义务的输入,作为下一个义务的输出
能停息、恢复任何一个义务
2.3缓存计划

-把内存占用量年夜的对象寄存在缓存中,如bitmap
使用了LruCache类来完成
使用了AsyncTask类来加载bitmap
不必再手动开释bitmap内存,该操纵有风险
不必再体贴AbsListView的scroll形态
关于缓存的更多具体细节,请参考[请参考CoreLib工程中的cache包]。
如许做,有甚么优点,不必再手动开释bitmap内涵,该操纵有风险,由于该bitmap是不是有View援用,假如当一个View在试图绘制一个已接纳的bitmap,这里会抛出非常。
2.4线程办理

无动静轮回的线程:
  1. 123456
复制代码
  1. newThread(null,newRunnable(){publicvoidrun(){//Doyouworks.}},"Thread_name_xxx").start();
复制代码
甚么情形下利用这类线程:
-做完一件事变就停止,这件事产生频次不高,好比从SDcard中读取图片数据
不必要复用线程
在利用线程,最好给线程加上名字,如许使用高度与跟踪。
有动静轮回的线程:

如许的线程具有动静轮回,当动静行列中没有动静时,这个线程会被挂起。我们要做一件事变时,只必要给它发送一个动静就好了。
这类情形一般是为了复用线程,不必频仍创立线程,好比音乐播放器程序,专门启动一个有动静轮回的线程来取得音乐的专辑图片。
我们一般还要创立一个与这个线程的动静轮回(Looper)相干联的Handler,由它来处置动静,注重,这做的事变是运转在背景线程的。
3,程序框架怎样计划

Android程序的布局

UI层
数据展现与办理
用户交互
绘制
Adapter
营业逻辑层
耐久化数据(内存中,相称于全局数据)
数据加式(数据层的数占有时分必要举行加工成UI层必要的数据)
数据变更的关照机制
数据层
数据会见(DB,文件,收集等)
缓存(图片,文件等)
设置文件(sharedperference)
上面,我试着画了一个Android程序的布局,假如有欠好的中央,接待斧正。

<br>
4,一些基础准绳

上面列出一些一般的准绳,我们应该在开辟过程当中遵守,接待增补与斧正。
4.1供应initialize()办法

在Activity.onCreate()大概View的机关办法中挪用,在今后看代码时,人们一般起首会往找initialize()如许的办法。
4.2封点缀击事务

把View的点击事务,提成办法,如许在listener处只是一个办法挪用者,一样平常的事务封装为:onXXXClick(Viewv)。
4.3计划一个BaseActivity类

让一切的Activity都承继自BaseActivity类,如许,我们能够做良多有效的事变
-界说共通属性
显现共通对话框(Progressdialog)
获得topactivity
能够手动办理启动的activity
4.4计划Application类

存全局数据,比topactivity,applicationcontext。

多线程问题还有胶水代码的问题建立一个基于CoreData的工程你会看到他自动创建3个类的对象NSManagedObjectModel管理数据的存储结构文件扩展名是xcdatamodeldNSPersistentStoreCoordinator用来管理底层数据的存储用官方的话说CoreDataisnotarelationaldatabaseorarelationaldatabasemanagementsystem(RDBMS)
再见西城 该用户已被删除
沙发
发表于 2015-1-21 12:41:15 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
板凳
发表于 2015-1-25 08:43:50 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
飘灵儿 该用户已被删除
地板
发表于 2015-2-1 10:20:16 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
小女巫 该用户已被删除
5#
发表于 2015-2-7 03:33:56 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
精灵巫婆 该用户已被删除
6#
发表于 2015-2-9 09:27:33 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
小妖女 该用户已被删除
7#
发表于 2015-2-27 05:11:00 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
活着的死人 该用户已被删除
8#
发表于 2015-2-28 05:10:03 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
因胸联盟 该用户已被删除
9#
发表于 2015-3-9 21:20:44 | 只看该作者
从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,
爱飞 该用户已被删除
10#
发表于 2015-3-12 08:09:36 | 只看该作者
down下code4app网站的每个分类的代码挨着看
第二个灵魂 该用户已被删除
11#
发表于 2015-3-19 19:02:29 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
若天明 该用户已被删除
12#
发表于 2015-3-31 18:53:36 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
简单生活 该用户已被删除
13#
发表于 2015-3-31 19:00:46 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
兰色精灵 该用户已被删除
14#
发表于 2015-4-12 15:58:31 | 只看该作者
中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,
若相依 该用户已被删除
15#
发表于 2015-4-20 03:20:17 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
灵魂腐蚀 该用户已被删除
16#
发表于 2015-4-21 15:50:33 | 只看该作者
其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。
小魔女 该用户已被删除
17#
发表于 2015-4-26 01:38:26 | 只看该作者
我也从简单的状态栏适配开始,先研究了下关于状态栏的适配,特总结如下,供广大网友一起讨论交流。
愤怒的大鸟 该用户已被删除
18#
发表于 2015-4-26 03:38:17 | 只看该作者
才在自己的Windows电脑上安装配置成功了一个完美的Mac OS X Lion(10.7.4)系统,而且下载了Xcode4.5的最新版本。虽然不能实机调试,但是作为iOS开发学习已经非常完美了。
深爱那片海 该用户已被删除
19#
发表于 2015-4-26 22:15:21 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
admin 该用户已被删除
20#
发表于 2015-6-6 09:59:51 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 19:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表