iOS Tasks
ITEC学习iOS的同学的Github聚集地 =。=
iOS开发的学习是个漫长而有趣的过程,加油吧~
Git
Git是目前最好用的分布式版本管理系统了,作为一个程序猿,这个是必备技能。
主页:https://git-scm.com
Pro Git教程:https://git-scm.com/book/zh/v1
推荐的GUI软件:SourceTree
国内比较好的Git托管平台:Coding
自己在Coding上建个账号,在本地建个Git仓库,试试提交、分支、push、pull等特型。
强烈建议使用http://gitignore.io/生成gitignore文件!
开发环境
硬件环境
Mac和iPhone.
IDE
Xcode 7 + 各种插件,推荐使用Alcatraz插件管理器安装、管理插件。
当然,大名鼎鼎的Jetbrains公司的AppCode也很不错!
学习
好书
推荐一个比较好的电子书下载网站:http://it-ebooks.info
如果从零开始学习的话,由一本比较好的书入手是最好的,推荐的书如下:
1. Objective-C
Gitbook的书:Objective-C-Tutorials
2. Swift
- 最好的当然是苹果iBooks的Swift官方教程。
- 官方的中文翻译版:《The Swift Programming Language》中文版, 苹果官方文档 Using Swift with Cocoa and Objective-C 中文翻译版
- 还有猫神的 Swifter: 100个Swift开发必备Tip也非常棒!
3. iOS编程
4. 设计模式
5. 代码整洁之道
编程语言
开发iOS的主要编程语言是Object-C(cocoa框架),当然还有C语言,C++等等。(最新的Swift刚到2.0版本,迭代比较快,以后一定是主流。本教程以OC为主)C++大部分用来开发图像、音视频等性能敏感的库,一般的应用只会涉及到Object-C。
目前Object-C的开发、维护基本上也就是Apple在做,所以学习Object-C最好最权威的地方就是Apple developer官网https://developer.apple.com/devcenter/ios/index.action
这里是几个比较好的官方教程:
- Object-C基本教程。
- 面向对象编程:Object-Oriented Programming with Objective-C。
- Block专题教程。这个非常强大!
- 线程: Threading Programming Guide。
- 字符串:String Programming Guide。
- 异常处理:Exception Programming Topics。
- 并发编程:Concurrency Programming Guide。
- 集合类:Collections Programming Topics。
当然,还有许多非常好的第三方教程,如:tutorialspoint
书
推荐一些电子书
- Programming iOS 7, 4th Edition
- Beginning iOS 5 Development
- iOS 7 Programming Fundamentals
- Learn iOS 7 App Development
- More iOS 6 Development
- Beginning iOS 7 Development
- The Core iOS Developer's Cookbook, 5th Edition
- Beginning iOS Programming
- Application Development in iOS 7
- Learning Cocoa with Objective-C, 4th Edition
- Professional iOS Programming
- iOS Components and Frameworks
- iOS Drawing
- iOS Auto Layout Demystified, 2nd Edition
- Learn iOS 7 App Development
- iOS 7 Programming Cookbook
iOS开发
有了一定的OC基础以后,就可以着手做几个小东西玩玩,练练手。iOS的体系很庞大,所以一开始最好先按照简单的教程来做一些Demo。当然,官方的教程是非常全面的,但是未免有些吓人=。=,太多了。。。所以在此推荐一个非常好的网站:www.raywenderlich.com,新手可以按照里面的教程,做些Demo应用,攒点成就感~~
当然,大神们的博客是要多多阅读的:中文 iOS/Mac 开发博客列表.
遇到问题多Google(不许用Baidu =。= ),stackoverflow是你最好的伙伴
任务
1. Task1: 做一个简单的笔记应用。
要求:
- 只用记录文字,有标题、正文、创建时间等基本信息。
- 一共两个页面,首页是所有笔记的列表,点击一条笔记进入笔记的详细内容页面,可以编辑笔记。
- 笔记可以创建、修改、删除、加星标记等。
- 用SQLite数据库保存笔记数据(可以用FMDB第三方库)。
- 发挥你的创造力!
2. Task2: 做一个简单的天气应用
百度的免费天气API:http://apistore.baidu.com/apiworks/servicedetail/112.html
要求:
- 可以搜索城市。
- 可以在本地保存要查看的城市列表,进入应用时更新城市天气。
- 可以显示7天内的天气,具体看API可以提供什么。
- 参考墨迹天气等App的设计。
- 发挥你的创造力!
第三方库
很多时候,我们可以减少重复的制造轮子,多用用别人的库,可以很大的提升效率。当然,阅读别人的优质代码也是一种学习。
第三方库管理工具:强烈简易CocoaPods。
这是冰岩的酷站推荐的一个iOS的常用第三方库合集。
Awesome系列!https://github.com/vsouza/awesome-ios
列举几个好用、常用的。
- AFNetworking:一个优秀的网络请求库。
- FMDB:一个封装了iOS的SQLite的库,可以方便的操作数据库,事务、并发什么的,都不在话下。
- SVPullToRefresh:一个UITableView的Category扩展,超级方便的增加下拉刷新、上拉加载更多的功能。
- SVSegmentedControl:不错的Tab switch控件。
- SVProgressHUD:iOS风格的简易提醒对话框。
- SDWebImage:简单强大的,带有内存、文件缓存的图片加载库。
- CRToast:漂亮的Status栏Notification。
- KLCPopup:炫酷的Popup弹出UIView。
- FDStackView:向下兼容的UIStackView!
- UITableView-FDTemplateLayoutCell:最方便的自动计算UITableViewCell高度并缓存的库。
- MJExtension:MJ写的Model库。
- iCarousel:具有3D效果的浏览组件!
- Mantle: 又一个优秀的Model库。
- Masonry:最人性化的用代码写Autolayout的库。
- Aspects:AOP库。
- PNChart:显示各种图表,如饼状图、柱状图、折线图。
另外,Facebook的开源库也是炫酷的不行啊,太多了。