第一步:编程入门课
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的乐昌网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
时间预计:4个星期
推荐看公开课,Udacity也行,网易公开课也行,自己找一个面对对象语言(一般是JAVA, C++, Python)的课。我是在网易公开课看的斯坦福的CS106A,学的JAVA。
如果你纯粹学iOS开发,不推荐看哈佛CS50,CS50是给CS系的学生介绍整个计算机世界的框架,讲的内容比较多,进度比较快,对iOS开发其实有点累赘了。(臣妾有点跟不上啊!!)
计划安排是一天一课,看课程要求的书(至少看完一本)及大部分作业。这一阶段重点不是语法,而是以下3个目标。
目标:
1. 让自己对编程这件事感到适应。
写hello world。
怎么写function, 怎么调用function。
全局变量,局部变量这类基本知识点。
都是基本的东西。看看书,写多两个程序就欧啦。
2. 掌握编程语言的基本要素。
编程语言4个要素:
a. 基本的数据类型:整数,实数,character, string, boolean
b. 基本的运算符号:+-×/++--那啥的
c. 怎样输入输出
d. 怎样控制程序:sequence,selection,loop
3. 了解编程范式
面对过程编程。
面向对象编程。
第二步:上手iOS!
时间预计:2星期
强烈推荐CS193P,老头子讲的超级好!我的很多东西(对象思维啥的)是在这里跟着做练习的时候才真正明白的(好啦,也可能是上一堂课练习做得少的原因)。如果等到9月应该itunes U上会开始教iOS 7了。网易公开课的是2010年iOS 5版的,前10堂课,也行。(iTunes U上有完整的课)
CS193P说有prerequisite,一开始被吓到,事实证明还是可以学下去的。头两节课一头雾水,没关系,把itunes U上的课件下载下来,把所有代码打出来,然后一个个元素对应之前学的语言匹配,再不懂先放着,继续学后边的,过几天打多点代码就懂了。
感觉学5、6堂课,一个星期左右就可以开始进入下一阶段自己做东西了。之后用啥学啥,每堂课都有主题的。速度慢点的同学们,这阶段跟我一样准备两个星期吧!
第三步:开发app!
时间预计:2星期(本人...1个半月,实在不好意思说出口)
这个时间就可长可短啦,还包括美工,交互啥的。坚持要用啥学啥的原则,其实就是知道iOS SDK都有什么组件,每个组件有什么function而已。stackoverflow, Github, apple sample code多上,搜索引擎多用。如果有个师傅,这个阶段真的是进步神速。
好的!不出意外,你的第一个app就这么新鲜出炉了!从今天开始,成为一个冷艳逼格高尚的iOS开发者吧!
Web开发包含的内容有:
一种后端语言:PHP、Ruby、Python、Java、C#等
各种前端语言:JS、CSS、HTML
框架:ThinkPHP、ROR、Web.py、SSH
一种数据库:MySQL等
服务器:Apache等
操作系统:Linux、windowsserver等
其他:HTTP常识、域名常识等
工具:
第一是多人协作的问题,你可以用svn或者git,git是比较流行的,但是大多数的公司还在用svn;
第二,iOS的数据持久化有很多方案,最高效的就是sqlite,在mac上有很多sqlite的可视化管理工具,我用的是sqlitemanager。
第三,关于查看模拟器或者真机的沙盒内容,模拟器可以使用SimPholders,真机可以用ifunbox。
第四,屏幕取色工具,sip。
第五,另外xcode也可以安装很多辅助工具,例如,格式化xcode代码的ClangFormat,第三方库管理工具CocoaPods,压力测试工具uiautomonkey。
开发前提介绍 : 1. XCode 2.蓝牙手环(60) 3.苹果手机一部(1000)
规矩我懂 先上图
2014.12.2 蓝牙技术联盟发布
具备更低功耗, 更高的传输速度。 唤醒速度可以和zigbee媲美
蓝牙2.0 需要MIFI 认证,这个大家都知道 。 MIFI : Make for ipad , iphone , itouch 专门为苹果设备制作的设备
蓝牙4.0 : 本文章的主讲
开发框架 : CoreBluetooth
central: 中心,连接硬件设备(手机端连接蓝牙手环 等等智能设备)
peripheral: 外设, 被连接的设备(仅当外设在不断广播的时候 才能被发现)
service: 服务
characteristic: 特征
_manager = [[CBCentralManager alloc] initWithDelegate: self queue: nil];
在调用这个方法的时候 带来会调用
- (void)centralManagerDidUpdataState:(CBCentralManager *)central
返回 :
当前蓝牙的状态 :
if (central.state != CBManagerStatePoweredOn) // 就代表返回失败了 当然自己看一下这个枚举
[_manager scanForPeripheralsWithServices:#你的特征值# options: nil];
# : 如果特征值写的是nil 那么当前所以可以被连接管理的蓝牙都可以扫描到
但是这里有个坑 , 已经连接上的蓝牙 不会在代理里面被返回
对应代理 :
处理 :
centralManager: (CBCentralManager *)central didDiscoverPeripheral: (CBPeripheral *)peripheral advertisementData: (NSDictionar *id)advertisementData RSSI: (NSNumber *)RSSI{
if(peripheral.name != nil ![_perilist containsObject: peripheral]){
[_perilist addObject: peripheral];
}
}
连接外设失败 : disFailToConnectPeripheral
连接断开: didDisconnectPeripheral
连接成功: didConectPeripheral