/iOS-Tasks

ITEC学习iOS同学的Github聚集地=。=

Primary LanguageObjective-C

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

Objective-C程序设计
image

2. Swift

Swift

3. iOS编程

iOS编程-第四版
image

4. 设计模式

Objective-C编程之道-iOS设计模式解析
image

5. 代码整洁之道

image

编程语言

开发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

这里是几个比较好的官方教程:

当然,还有许多非常好的第三方教程,如:tutorialspoint

推荐一些电子书

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 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的开源库也是炫酷的不行啊,太多了。