ios程序猿攻城策略

这也是一个面向对象的问题,作为实例对象的你需要一步一步去攻城拔寨。待各处插满了自己的旗帜,回过头来,你会感谢一路走来的自己!

一、入门  

面向对象编程基础(类和继承,变量和方法的作用域,MVC基本概念,分类)

方法和函数(消息,类定义和属性,与C/C++的混合编程)

内存管理(strong/weak, ARC自动引用计数,自动释放对象)

代码设计模式(Block块语句,Target/action,协议)

UIKIT(视图层级,绘制事件,触摸事件,动画)

多媒体(配置,AVFoundation, C语言的API)

二、中级   

掌握核心类库:
相机和microphone
社交网络与分享
CoreData数据持久化
Foundation,又包括Application loop(应用循环),Threads(线程),Networking(网络)。
MapKit,也就是如何使用地图
Passbook,也就是和移动支付系统的整合
CoreLocation,如何在茫茫人海之中找到你所爱的位置
Bluetooth,蓝牙模块,如果你要开发周边硬件设备,这是必不可少的
Notifications,消息推送,又包括Local本地和Push(APNS)推送
CoreMotion, 比如陀螺仪相关的东西
GameKit,和第三方游戏设备(手柄)相关的东西
SpriteKit,类似cocos2d的2D游戏引擎

三、进阶   

第三方依赖库管理

懂CocoaPods的iOS开发者不说立马晋升高大上,至少也突破了屌丝的瓶颈。
对CocoaPods的使用请参考这里:CocoaPods安装和使用教程

攻城工具Xcode的学习:

项目管理:包括文件结构,导航,Build 设置,属性列表等

代码编辑器:包括如何高亮,查找,自动完成,查看文件,Assistant Editor等等。

Interface Builder: 如今的Interface Builder(界面编辑器)是内置在Xcode中的,这部分又包括Storyboards和xib的使用,控件类型及属性设置,IBOutlet和IBAction,自定义类,Tag,视图文件结构等。

代码调试工具:包括lldb,断点,日志等

Instrumentation工具:包括内存泄露和CPU使用率的监控等。

Git版本管理:包括repository的管理,branching和merging。

详情请参考:

开发者工具概述

四、高级    

软件工程

iOS开发者除了知道如何具体写代码,还要在思想上提升自己的档次,站在一个更高的角度看待项目的开发和管理。这个时候就需要了解一些软件工程的概念。

对于软件工程,需要掌握的内容如下:
应用程序的架构:比如模块化和SOA,逻辑封装等
敏捷过程:比如项目所有者和用户场景,迭代开发,高效沟通等。其中迭代开发步伐又包括测试和结对编程,CI和代码审阅,QA质量测试和调试。
项目管理:比如项目规划和评估,工具和文档化,Licensing等。

五、淬炼期大成

(1)、iOS开发者的淬炼功法1-Tests测试

一个有经验的iOS开发者往往会采用测试驱动开发的思路。

大概要学习的内容包括:
测试类型:单元测试,功能测试,整合测试,性能测试,可用性测试,回归测试等。
连续测试:continuous integration,自己去google
XCTest:Xcode特有的测试方法。
关于这部分的内容详细参考:
Quality Coding

TDD的iOS开发初步以及Kiwi使用入门

Xcode Overview: Unit Test Your App

(2)、iOS开发者的淬炼功法2-Git版本控制

iOS开发者需要对Git版本控制有一定程度的了解。
具体包括:
版本控制系统:其中又包括分布式VCS,Branch,Merge,Diff
GitHub的使用:Fork和Pull requests
config: remotes和default behaviors。

(3)、iOS开发者的淬炼功法3—移动应用开发的独特性

虽然Web开发,PC端应用开发,移动应用开发并没有等级之分,但各自却有了完全不同的特点。

开发者需要根据移动应用开发的独特性掌握相应的知识:

HIG(Human Interface Guidelines):人机界面交互,具体参考:

iOS Human Interface Guidelines: Designing for iOS 7

流量消耗的考虑:包含两个方面,一个是安装包的大小,另一个则是在使用过程中的流量消耗。

多线程操作:比如上传下载文件之类比较耗时间的操作可以单独放在一个线程中,详细请参考:Grand Central Dispatch (GCD) Reference

状态保存和恢复:让用户下一次进入应用时仍然进入此前所在的界面和状态。

本地化:根据用户所在的地区选择对应的语言显示

(4)、iOS开发者的淬炼功法4—吸星大法-参考别人的源代码

源代码的来源包括:
http://developer.apple.com中苹果官方的源代码;
http://github.com里面的源代码;
code4app,cocoachina等第三方网站中大家共享的源代码;
教程网站和其它第三方网站中的源代码(如http://raywenderlich.com等);
通过逆向过程研究别人的应用,这个有点高大上了。

(5)、iOS开发者的淬炼功法5—提高英语水平

一个修真者莫大的痛苦是,自己的面前摆着一门绝世神通,却TMD是火星文完全看不懂?

对于iOS开发者(包括其它程序猿)来说,如果自己的英文水平不行,就等于手握万千绝世神通却半个字都不懂。

所以,最起码要多花时间看看英文文档,教程,博客,论坛,不必刻意去学,而是在提高自己iOS功力的同时提高自己的英文水平。两者相辅相成,相得益彰。

(6)、产品发布   

App Store发布:包括provisioning profile,code-signing,开发者入口,具体参考:

如何发布IOS应用程序到苹果APP STORE

或苹果官方文档,因为具体做法经常会有调整。

时间: 2024-10-03 03:51:20

ios程序猿攻城策略的相关文章

自动化编程,帮忙程序猿攻城的利器

扳手 ant.maven.eclipse.note pad ++.edit plus.sublime.vs2010 仓库 git.github.svn 铁锹 python.go.java.shell.bat.php.ruby.c.c++.c#. 结构支架 spring.django.rails 用途 web.应用程序.脚本 投入使用 aws.阿里云 利用脚本扳手提高编程效率

创业公司求IOS、Android攻城狮一枚

地点:北京CBD附近(地铁1号线大望路) 魅力值:送珍贵期权 你要会: 1. IOS或者Android开发 2.能够处理类似微视/秒拍的视频录制功能 3.熟悉json 4.做过第三方登录 5.爱学习 6.no zuo 7.工作经验不限 如果你适合,就别再犹豫,发简历到[email protected](饶先生),或者加TA QQ随便骚扰,TA正在求骚扰 创业公司求IOS.Android攻城狮一枚,布布扣,bubuko.com

从此走上一条iOS程序猿不归路。。。

新的城市,新的生活!前不久刚刚结束了苦逼的面试找工作之旅,期间也小有收货,如今正处年底工作闲暇之余,将前一阵子陆陆续续的总结整理了一下,本人菜鸟程序猿一只,水平有限,本文总结的知识不算深入,比较浅显,还望大神见谅,重在总结,交流与分享...-_-! 文章主要宗旨如下: 1:ios开发中常见技术的总结(主要是区别) 2:作为一个iOS程序员必备的常识问题 3:作为面试必备的一份宝典 4:初学者快速了解相关技术 5:老程序员快速回顾混淆,忘记的知识点 后续我也会一直讲本文更新下去,有遗漏点或者错误的

swift语言从天而降,作为ios程序猿,我们如果面对?

Swift语言诞生到现在,才短短一个月多,Swift竟然挤进TIOBE排行榜的第16位,相信这发展的速度绝不是任何一个语言可与之相提并论,那Swift到底是一个怎样的语言,竟然永远如此的魅力!在如此的严峻的环境下,对于开发者又该如何抉择看待?对于苹果自身又意味着什么,难道推出Swift语言就是简简单单替代Object-C,还是拥有一层更深的战略?今天老猫(Swift开发者社区管理员)就跟大家一起分享下自己的看法. Swift到底是一个怎样的语言? 就Swift语言本身而言,他是一门很优秀的语言,

【云栖大会】程序猿、攻城狮的大聚会 他们眼中的云栖大会是啥样

2016年云栖大会进行得如火如荼,"烧脑"."前沿"."高端"."技术"."一票难求"--这些关键词把这场"干货"分享大会衬托得神秘满满,有一群人却沉浸其中,自得其乐. 他们的名字叫--程序猿.攻城狮. 从最初的站长大会,到阿里云开发者大会,再到云栖大会:从200名草根站长到4万名业内外参与者:从单一峰会发展至超过100场论坛的"巨无霸"大会:从纯谈技术到融合音乐节.

#51CTO学院四周年#从程序猿到攻城狮的转变

#51CTO学院四周年#一名大学生在51CTO学院的心路历程 我是来自一名即将实习的大学生,这个学期开学的时候,我就意识到,这学期该出去实习啦,该出去实习啦,该出去实习啦.可身为软件开发的编程狗,真心不喜欢一天到晚脑袋想着算法,手上敲着代码的日子.各位程序猿别喷我,我是属于性子太活,真心的对代码不感兴趣,兴趣是最大的老师,但我不否认代码的魅力所在,我第一次用C做出个计算器,晚上还高兴的多吃啦半碗饭,但时间一长就不行啦. 好啦,言归正传,我不想出去干代码,可我能干什么那.我一直对硬件,以及网络方面

程序猿技术练级攻略

伯乐人才网6月9日发表了<写给即将入行的程序猿的一封信>,翻译自<An open letter to those who want to start programming>.我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章. 由于他也是喜欢编程和技术的家伙.于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下.于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并依据我的经历添加了"进阶"一

【腾讯TMQ】解放程序猿(媛)的双手—iOS UI自动化测试

解放程序猿(媛)的双手-iOS UI自动化测试 前言 随着移动互联网时代的蓬勃发展,移动终端的自动化测试也在业界日益活跃,总体来看在Android平台上的自动化工具和实践比较多,但是说到iOS平台无论从自动化工具的数量还是质量上就陡降了.究其原因,无外乎是iOS系统的封闭性,加上相对Android用户的数量少,导致对这个平台系统的自动化进展缓慢,据笔者了解到的情况,很多iOS平台的测试人员还处于纯手工测试模式,自动化程度和Android平台无法相论,更别提和PC端相比了. 然而越是困难的事,越是

转:攻城狮修炼秘籍

漫校园生活,孜孜不倦的你,今天书多读一点! 海康威视为你的假期精心准备了精神的饕餮大餐! 把自己投入知识的海洋吧!为即将成为一名高冷俊俏的程序猿和媛而吹响最后的号角: 各类秘籍自助区 一.测试攻城狮 <软件测试> <测试之道> 二.硬件攻城狮 基础理论:工程数学.积分变换.信号与系统.数字信号处理.自动控制原理.英语 专业课程:数电.模电.嵌入式系统.热设计.DDR3.flash.开关电源 (若有实践经验,可只看基础理论) 三.应用软件开发攻城狮 必读: <UNIX环境高级编