ios开发看起来似乎很难,在这里浓缩出了几个浅显易懂的开发步骤,以供初学者参考,追寻这些步骤将使你的ios开发之路更顺畅。
一 define the concept
伟大的app都是从concept开始的,你必寻清楚你的app要解决什么样的问题,好用的app都能解决一个单一已经存在的problem.
要有一个好的concept,你可以考虑以下几个方面:
who is your audience?
这会决定你的app的内容和experience,你的app为谁而做,儿童,上班族,...
what is your propose of you app?
一个清晰的已经定义好的目的,你的app解决了什么样的problem,这决定了你的app的需求量(下载量)
what content your app incorporate?
你的app将什么东西呈现给使用者,使用者怎样与app互动,设计用户界面去把content呈现给使用者
二 design user interface
在你的app有了concept之后,你需要设计有好的user interface,使得使用者能够和你的app方便的交互。在设计user interface时,你必须时刻提醒自己怎样的设计才能使使用者用起来更方便。在design user interface 中最难的事情是把你的concept转换成interface并且实现它,你会发现storyboard 将是你好的帮手。当你把一个view添加到storyboard的时候,你将会在scene中非常直观的看到这个view(详见0.0),你可以在storyboard中添加多个views和多个scenes去构建更复杂的应用
三 define the interaction
design user interface之后,你需要写代码去对在interface 上用户的action进行响应。
ios apps是基于事件驱动的,app运行的过程被事件所驱动:system event 和user actions,驱动的结果是对掌控的data的logic的执行
四 implementing the actions
use objective-c 去实现事件背后的逻辑和对数据的掌控
objective-c 面向对象,dynamic run
1 当你些代码的时候,需要花费许多时间在object上
你可以把一个app理解为有许多通过互相之间的通信连接起来的对象一起去实现某个功能的生态系统,对象用行为封装了data
你可能用许多对象去构建你的app,从interface element 到data object
2 类描述了一组特定对象的所共有的行为和property。你可以写自己的类,也可以用framwork中预先定义的类
获得一个object,需要用class去创建一个instance,通常用allocate 和initialize去初始化一个类的实例。allocate在memory中为该对象留出足够的空间,此时对象的instance variable 是0,initialize 用合适的值去初始化property和instance variable.在创建一个类的实例是他们两个必须一起使用
类的继承:subclass 从parent class 继承,子类拥有父类向外公开的所有方法和property,子类可以实现自己特有的方法,也可以override 父类中已经存在的方法。这样做的好处是实现了类的扩展。
3 object 和object之间是通过message来通信的
一个object通过调用自己已经实现的方法,来和另外的类进行通信
一个对象发送的message通过另一个对象对他的方法的调用来实现message的传递
4 protocols 定义了消息之间的传递规则
protocols定义了一个对象在给定的情况下希望对象执行的行为的集合
protocols是一个纲领性的接口,任何类都可以选择遵循或不遵循。协议可以使两个互不相同的类去互相通信完成特定的任务
任何能够提供对其他类有用的方法的类都可声明为协议,去出租他的方法(行为)。
任何类都可采纳协议去实现协议的一个或多个方法,充分利用协议的行为去实现某种目的
五 incorporating data
在实现了行为之后,你已经建立起了data mode.data mode定义了app中的数据的存储方式
data model 包含简单的dictionary 和复杂的database
app 的data model应当反映出app的内容和purpose,在interface 和data之间应该有一个清晰的相关性。
六 use the right sources
design patterns
选择合适的设计模式将会使你起到事半功倍的效果
frameworks
利用已经存在的frameworks,去实现某些功能