zoukankan      html  css  js  c++  java
  • 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,类似cocos2d2D游戏引擎

     

    三、进阶   

    第三方依赖库管理

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

    攻城工具Xcode的学习:

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

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

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

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

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

    Git版本管理:包括repository的管理,branchingmerging

    详情请参考:

    开发者工具概述

    四、高级    

    软件工程

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

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

    五、淬炼期大成

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

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

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

    TDDiOS开发初步以及Kiwi使用入门

    Xcode Overview: Unit Test Your App

     

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

    iOS开发者需要对Git版本控制有一定程度的了解。
    具体包括:
    版本控制系统:其中又包括分布式VCSBranch,Merge,Diff
    GitHub的使用:ForkPull requests
    config remotesdefault 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

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

      

  • 相关阅读:
    内核学习<1>
    守护进程(Daemon进程)
    内核模块版本和内核版本不一致的处理方法
    下载,安装 Source Navigator(ubuntu 14.04)
    最新android NDK 下载地址 for Windows
    HTML5初学一 随机的骰子
    系统自带视频
    网络接口log打印
    recyclerView嵌套recycleView
    冒泡循环
  • 原文地址:https://www.cnblogs.com/liuxiaokun/p/4806638.html
Copyright © 2011-2022 走看看