啰嗦

8月5号左右突然做出了来北京工作的决定,给北京同学了解情况时正好同学公司缺人,7号来面试了下,13号一早就来报到了。自己与iOS开发还是有些缘分,3月中旬到5月初在济南一家小公司做了不到2个月的iOS开发(当初面试是做Android,但近来后iOS更急需,我想我这刚转行都可以啦,就开始做了iOS;后来北京同学这开始也想做Android(抱着以后能学习学习Android源码的想法那时对Android情有独钟),不过同学这也是缺少iOS,于是就这样定了吧)。

(现在想来,转为开发iOS,也与我有些迷茫有关系。移动开发、渗透测试、机器学习,三个自己都投入过不少时间的方向,拿不定主意,就看找到哪个工作了。(或许面试我的人能看出我是否适合那个方向哈))。

  • 3月中旬到5月初,接近两个月时间。 (中间两个月做梦O2O创业去了,梦醒后就8月份了)
  • 8月13号到今天(11月18日),3个月多点。

总共5个月了,感觉自己iOS开发算是入门了,总结总结,最后也计划计划。

前言

在 Windows 平台用 C++ 开发了 5 年客户端,平时喜欢看书且信书,第5年了就想着跨界一下,看到一本《MacTalk人生元编程》……从此迈入了 Apple 的大门。

此文主要总结下,我这5个月如何从 Windows C++ 开发转到 iOS 开发。

准备

信息

  • 《MacTalk人生元编程》,让我对 Apple 有了第一次认识(以前只知道乔布斯)。(这本书我是2014年买的) ### 硬件
  • MacBook Pro 15寸 非顶配,我是从小闷的水果店买的港版。(现在公司用的13寸+外接显示器,感觉13寸也不错。)(2014年底购买)
  • iPhone 4S,从闲鱼上700块钱买了的二手的。(从来没有用过Apple的产品,为了让自己熟悉iOS系统的操作)(2015年3月份开始做iOS开发后买的)
  • 鼠标。前期还是配个鼠标,否则不习惯。慢慢习惯了触摸板就很少用鼠标了。

###软件 - Xcode,使用AppStore安装。 - 搭建一个Mac开发环境,推荐看这个文章 https://aaaaaashu.gitbooks.io/mac-dev-setup/content/。

学习

## 第一阶段:基础

这个阶段大概用了一个星期,遇到的问题百度都能很快找出来。

1. 《马上着手开发 iOS 应用程序》

英文是 Start Developing iOS Apps Today。

首先看了这份官方提供的教程,手把手教程。边看边做,完成后信心大增。

2. 《Objective-C 程序设计》

我看的第四版,大概两天的时间,从头到尾浏览了一遍。类和Foundation部分照着写了一些例子程序熟悉语法。

3. 《iOS开发指南:从零基础到AppStore上架》

看的第二版。书中虽然步骤很详细,从头到尾看快速浏览了一遍,前几章的挑了一些例子,一步一步完成了,熟悉了开发套路后,后面章节的小项目,跟着做出来。大概花费了3、4天时间。之后就是边开发边看书了。

4. iOS代码写界面

主要是看的这篇文章,http://www.cocoachina.com/bbs/read.php?tid=131516

第二阶段:真正开始开发

这个阶段前后加起来算是最长时间,大概4个多月吧。

5. 熟练控件

  • UITableView
  • UIScrollView

6. CocoaPods

  • 基本使用

7. 熟悉常用的几个库

这些库基本上都是开发必用的了。

  • AFNetworking 很出名的网络库
  • Masonry 方便的手写自动布局
  • MBProgressHUD 等待进度
  • MJRefresh 下拉刷新
  • JSONKit JSON解析
  • SDWebImage 异步加载图片

8. 几个概念

  • GCD
  • KVC/KVO
  • MVC
  • NSCoping
  • NSCoding
  • 开发者账号的类别
  • 开发证书、生产证书、推送证书
  • 描述文件

9. Xcode插件

先安装插件管理器 http://alcatraz.io/

  • FuzzyAutocomplete 代码自动完成的模糊匹配
  • XToDo 查找代码中的TODO标记
  • KSImageNamed 代码中写[UIImage imageNamed:]时可预览图片
  • XVim VIM模式
  • VVDocumenter-Xcode 按///产生注释
  • XBookmark 书签功能(我习惯用书签功能,以前用VisualStudio时的习惯)
  • ColorSenseRainbow 代码中方便预览颜色

10. 几本书

  • 《精通iOS开发》 补充概念,工具书。
  • 《iOS开发进阶》 页数不多,但很实用。
  • 《Effective Objective-C 2.0》 小经典

11. 常用网站

  • Code4App
  • CocoaChina
  • GitHub

第三阶段:深入

给一个App的需求,自己能自信的说没问题了。应该进一步深入的强化下自己的知识了。

12. 崩溃获取及分析

  • PLCrashReporter
  • 分析崩溃
  • 理解崩溃 https://developer.apple.com/library/ios/technotes/tn2151/_index.html
  • 符号化方法 http://wufawei.com/2014/03/symbolicating-ios-crash-logs/

13. 持续集成

  • fastlane 是一个工具集合,各种iOS开发的流程,甚至App自动截图。
  • fir.im 很好的解决了App内测分发。老板想看看最新开发中的App,给他一个链接就OK了。
  • Jenkins 强大的持续集成系统,配合 fastlane 和 fir.im 方便的自动化整个打包、上传过程。

14. CocoaPods

  • 如何自己创建库

15. 一些更深一步的概念

  • Method Swizzing :以前做Windows Hook,Objective-C也有啊,概念总是相似的。
  • 消息转发机制
  • Toll-Free Bridging
  • 关联对象
  • Bitcode
  • Objective C++

16. 源码学习

  • Masonry
  • UITableViewCell-Auto…
  • MBProgressHUD
  • MJRefresh
  • 看到一些不错的效果,有源码就看一看

17. 单元测试

  • Specta/Expecta
  • Kiwi

18. MVVM

  • ReactiveCocoa

19. 几本书

  • 《Objective-C编程之道》主要是学习思想。还没看完。
  • 《大话移动APP测试,Android与iOS应用测试指南》从测试的角度反思下开发。
  • 《Objective-C 高级编程:iOS与OS X多线程和内存管理》

20. 文章

  • 招聘一个靠谱的iOS http://blog.sunnyxx.com/2015/07/04/ios-interview/
  • 答案 https://github.com/ChenYilong/iOSInterviewQuestions

第四阶段

这一阶段是我的计划。过去5年自己一直做安全产品,对安全总是情有独钟,现在做iOS开发了,肯定不能少。书已经买好等着我看啦。

21. 继续深入

  • 各种特效
  • 各种动画
  • 各种界面

22. 安全

  • 《iOS应用逆向工程》
  • 《iOS应用安全攻防实战》
  • 《深入解析Mac OS X & iOS操作系统》

总结

以上是我这几个月的iOS学习经历,可能有遗漏,分享给大家,希望能帮助到其他C++转iOS的同行们。

如有不正确的地方,请指正。

C++转iOS开发5个月总结相关推荐

  1. 5个月iOS开发入门总结(C++转行iOS)

    前言:一个人写的ios转行总结,思路很清晰,值得学习 原文网址:http://www.cocoachina.com/bbs/read.php?tid-332587.html 啰嗦(请跳过) 8月5号左 ...

  2. ios开发趋势_2020年将成为iOS应用开发的主要趋势

    ios开发趋势 Technology has always brought something new with time. And with these ever-changing technolo ...

  3. Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序

    Xamarin iOS开发实战第1章使用C#编写第一个iOS应用程序 C#原本是用来编写Windows以及Windows Phone的应用程序.自从Xamarin问世后,C#的作用就发生了很大的变化. ...

  4. ios开发中计算代码运算时间_iOS日历、日期、时间的计算

    时间和日历的计算在iOS开发中经常看到,经常看到大家在百度,开源中国等搜索这些答案.今天写个简单的时间和日历有关的计算. 获取一个月的总天数 1.获取当月的天数 - (NSInteger)getNum ...

  5. iOS开发工具——网络封包分析工具Charles

    iOS开发工具--网络封包分析工具Charles 简介 Charles是在Mac下常用的截取网络封包的工具,在做iOS开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析.Char ...

  6. android转IOS开发学习计划

    终于决定从android平台开发转向IOS开发了,从oc起步,入门从<Objective-C编程全解>开始,记录读书笔记. 学习计划: 1.读完<Objective-C编程全解> ...

  7. iOS开发 Xcode8中遇到的问题及改动

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动. 一个一个填吧... 一.遇到的问题 1. ...

  8. IOS开发入门环境搭建输出helloworld

    背景: 一个搞IOS开发的学弟从腾讯跳槽到快手,让我突然心血来潮,想试试IOS的开发. 自然而然一切都要从Hello Word开始. 时间:2020年4月3日 介绍一下我的电脑配置: 第一步,下载安装 ...

  9. IOS开发学习记录第3天之C语言学习

    (一).学习IOS开发,我们就要刨根问底,如果学习,从哪学习,首先iOS是由苹果公司开发的移动操作系统[1] .苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPh ...

最新文章

  1. Science论文:诺奖经济学家的经典决策模型,被AI挑战
  2. BOM,DOM常见操作和DHML
  3. [PY3]——内置数据结构(4)——字符串格式化(format)
  4. java 模型 视图,部分视图模型
  5. JUnit单元测试笔记
  6. oracle 时间加减
  7. SOA和微服务架构的区别?
  8. oracle ola_Ola HallengrenSQL Server维护解决方案–索引和统计信息维护
  9. Kafka 的生产者优秀架构设计
  10. 《Python预测之美》送书活动,拿走不谢~
  11. 二维数组绑定到Dropdownlist
  12. 《机械制造工艺学》课程设计任务书
  13. 【Kindle】pdf转mobi适合kindle查看格式
  14. 微信小程序加载效果和取消加载效果
  15. cpu和内存占用过高,但是任务管理器中的进程占用的内存和cpu看不出来
  16. 用计算机弹奏全球变冷,《全球变冷,钢琴谱》许嵩(五线谱 钢琴曲 指法)-弹吧|蛐蛐钢琴网...
  17. 计算机口令管理工具,PC免费密码管理器软件推荐
  18. [智能车]平衡车/直立车的入门经验(代码讲解)
  19. Service id not legal hostname (service_cmn)
  20. react的ref三种用法

热门文章

  1. docker 入门 —— docker容器数据卷volumes-from
  2. 什么是染色质免疫沉淀法 (ChIP) ?——ChIP原理概述
  3. 论文阅读-11-Handling Inter-class and Intra-class Imbalance in Class-imbalanced Learning
  4. PermissionError: [Errno 13] Permission denied 已解决
  5. 【英语语法入门】 第17讲 不定量表达法 (3)
  6. 干货——生产型企业的供应商管理系统模板
  7. Linux、Ubuntu系统读取(挂载)U盘
  8. ZJOI2018一试游记
  9. Unity 实现卷轴展开效果
  10. C语言程序分析之长方形的体积(函数做法)