让你快速了解并掌握如何进行iOS开发技能
首先你要花点时间针对objective-c语言的学习;毕竟这个是iOS开发的基础(你也可以尝试用Swift,但此项目只是针对OC),编程套路其实都是差不多,多写多想多实践;关于环境的搭建就不在本文进行介绍,这部分内容可以自行百度或谷歌,都有相应的说明;
对于一个刚入门总是希望有个完整的项目可以直接运行,并且从中学习功能模块如何开发;本项目初识就是为了把常见的功能模块进行一个展现,里面还包含一些基础知识的介绍;如果可以大概看完项目中的代码,对于编写一个iOS项目应该是没有问题;项目中也把常用到的代码进行整理,希望对你有帮助;
效果展现:
![]() |
![]() |
一:整体项目搭建

项目中对于代码的架构跟分层还是比较明确,可以满足大部分中小型的项目,采用也是传统的MVC模式,对于模块、资源、助手、分类、宏定义文件等都有相应的位置进行存放;当然对于项目的分层还是基于项目的要求,及个人的喜好;项目还定义宏进行区分不同的环境,可以根据要求再增加不同环境;
二:常见助手代码

项目中对于一些常见的功能代码已经进行封装,都可以运用在真实的项目中,达到简化项目开化的目的,各个助手就没进行一一介绍;可以自行下载源代码进行查看;
三:基础知识点
1:viewController生命周期
2:运行时RunTime知识运用 里面包括RunTime一些常见的实例,部分有简单的介绍
3:多线程知识运用 包含NSThread多线程、GCD多线程、NSOperation多线程、同步锁知识各种实例实现
4:Protocol实现类 如何简单实现解耦
5:Block内存释放知识点 常见的内存处理问题 包含block循环、对象释放等
6:TableViewDataSource提取
7:CADisplayLink知识运用
8:CAShapeLayer与UIBezierPath知识运用
9:CGContext知识点运用
此模块是关于iOS一些常见知识点的总结,每个基础点都有相应的实例跟代码注解介绍,特别是关于runtime知识点、多线程、动作等内容;在平常开发过程中还是比较常见;会比入门基础知识点更加深入;
四:模块知识点
1:集成百度地图(3.0.0版),目前有百度定位功能(ThirdMacros.h修改相应的key值)
2:集成友盟统计(ThirdMacros.h修改相应的key值)
3:集成CocoaLumberjack日志记录
4:引入第三方inputAccessoryView 解决为一些无输入源的控件添加输入响应。比如按钮、cell、view等
5:集成个推消息推送功能(ThirdMacros.h修改相应的key值),证书也要用你们自个的消息证书;
6:集成友盟分享SDK,并在登录页实现的(QQ,微信,新浪)三种的第三方登录功能(ThirdMacros.h修改相应的key值)
7:集成友盟第三方分享(QQ空间分享,微信朋友圈,新浪微博分享,QQ微博分享,微信好友)
8:增加关于CocoaLumberjack日志记录的展示及查看页面
9:增加百度地图显示页面功能实例,实现在地图上显示几个坐标点,并自定义坐标点的图标跟弹出提示窗内容,实现当前定位并画出行车路线图;
10:增加FLEX,在本地测试版本开启,FLEX是Flipboard官方发布的一组专门用于iOS开发的应用内调试工具,能在模拟器和物理设备上良好运作,而开发者也无需将其连接到LLDB/Xcode或其他远程调试服务器,即可直接查看或修改正在运行的App的每一处状态。
11:增加FCUIID帮助类,用于获取设备标识
12:增加热更新JSPatch插件,并增加相应的帮助类及测试功能(JSPatchViewController)
13:集成启动广告功能模块,如果不要功能可以在AppDelegate里面进行注掉
14:集成CYLTabBarController插件,为项目增加底部4个TabBar菜单
15:引入LKDBHelper并增加创建数据库帮助类,实现实体直接映射到数据库表
16:集成第一次启动的引导页功能模块
17:集成LBXScan插件,实现二维码相关功能模块,包含扫二维码显示结果、从相册读取图片中的二维码结果
18:封装MBProgressHUD扩展类,定义一些常见的提示效果,详见MBProgressHUD+MP类
19:开发关于图片上传,包含选择照片、拍照、浏览大图、获得图片GPS、图片名称、图片拍照时间、上传时对图片进行转正调整、压缩图片、图片展现效果
20:开发关于图片上传带进度效果,并把照片先存入沙盒中,上传成功删除,引入M13ProgressSuite插件显示进度扇形效果,部分用到ReactiveCocoa知识;
21:编写一个以iphone5为效果图的字体适配屏幕,兼容iphone6+效果,如果你的效果图不是iphone5,可以修改相应的宏定义,现在是以iphone5为标准
22:编写一个UITableViewCell倒计时功能,实例因为没有服务端接口,所以时间都以本地时间为准,正式项目时间都要从服务端获取;
23:引入WebViewJavascriptBridge进行H5交互,并对官网实例进行注解
24:增加省市区三级联动的帮助类,可以设置绑定默认值,也可以查看当前的弹出窗状态,并实现其小实例
25:增加自定义弹出窗帮助类,模拟系统UIAlertView效果,增加一个带UITextView的弹出效果,其它自定义视图根据项目再创建;
26:YYText富文本实例 简单实现关于YYText的运用,并包含一些小实例
27:列表行展开跟回收隐藏 实现列表分组显示,然后实现可以对每一组进行展现跟收缩的功能;
28:常见表单行类型 常见的几种表单实现方式,包含输入、选择、多行输入、时间选择;
29:人脸识别注册及验证 集成识别SDK,完成人脸的识别签到效果;
30:JavaScriptCore运用 跟H5结合的实例,完成相应的调用效果
31:Masonry布局实例 列出一些比较常见的布局方式
32:键盘处理操作 实现关于键盘弹出时的自定义视图高度问题
33:自定义导航栏动态显现效果 可以实现滚动时对导航栏的变化,监听关于滚动的变化
34:列表只加载显示时Cell的SDWebImage图 实现列表在快速滚动时行的图片先不进行加载,直到停止时才进行加载图片,优化展现
35:长按列表行拖动效果 实现列表中的某一行进行动态拉动,并插入到其它位置效果
36:自定义日期弹出控件,过滤不符合最大时间跟最小时间范围;
此模块也是项目占比重最多的部分,里面已经包含常见的功能点,其实每一个都是一个真实的功能实现;相信这些功能点已经足够满足你开发一个APP;你可以针对每一个功能点进行查看;
四:插件介绍
abstract_target 'MobileProjectDefault' do
pod 'AFNetworking', '~>3.0'
pod 'ReactiveCocoa', '~> 2.5'
pod 'SDWebImage', '~> 3.7.5'
pod 'JSONModel', '~> 1.0.1'
pod 'Masonry','~>0.6.1'
pod 'FMDB/common' , '~>2.5'
pod 'FMDB/SQLCipher', '~>2.5'
pod 'CocoaLumberjack', '~> 2.0.0-rc'
pod 'BaiduMapKit' #百度地图SDK
pod 'UMengAnalytics-NO-IDFA'#友盟统计无IDFA版SDK
pod 'GTSDK' #个推SDK
pod 'UMengSocial', '~> 4.3' #友盟社会化分享及第三方登录
pod 'FLEX', '~> 2.0', :configurations => ['Debug']
pod 'ActionSheetPicker-3.0'
pod 'JSPatch'
pod 'XAspect'
pod 'CYLTabBarController'
pod 'LKDBHelper'
pod 'RegexKitLite', '4.0'
pod 'IQKeyboardManager', '~> 3.3.7' #兼容IOS7
pod 'LBXScan','~> 1.1.1'
pod 'MBProgressHUD', '~> 0.9'
pod 'MWPhotoBrowser'
pod 'M13ProgressSuite', '~> 1.2.7'
pod 'WebViewJavascriptBridge', '~> 5.0'
pod 'YYText'
pod 'LazyScroll'
pod 'ZFPlayer'
pod 'TZImagePickerController' #照片选择浏览器
pod 'UITableView+FDTemplateLayoutCell' target 'MobileProject_Local' do
pod 'MLeaksFinder' #可以把它放在MobileProject_Local的target中 这样就不会影响到产品环境
end target 'MobileProject' do
target 'MobileProjectTests' do
inherit! :search_paths
pod 'Kiwi', '~> 2.3.1'
end
end
end
上面这个是目前通过Pod引入的第三方主流插件,当然热更新记得拿掉,目前苹果已经不支持了,此处只是为了让你了解关于它是如何运用;
整体项目中很多细节跟功能代码,就不一一列出,假如你对此项目感兴趣可以自行下载了解;
本项目代码已经分享到github上:https://github.com/wujunyang/MobileProject
最近有个妹子弄的一个关于扩大眼界跟内含的订阅号,每天都会更新一些深度内容,在这里如果你感兴趣也可以关注一下(嘿对美女跟知识感兴趣),当然可以关注后输入:5 会有我的微信号,如果有问题你也可以在那找到我;当然不感兴趣无视此信息;

让你快速了解并掌握如何进行iOS开发技能的更多相关文章
- 快速入门系列--MVC--07与HTML5移动开发的结合
现在移动互联网的盛行,跨平台并兼容不同设备的HTML5越来越盛行,很多公司都在将自己过去的非HTML5网站应用渐进式的转化为HTML5应用,使得一套代码可以兼容不同的物理终端设备和浏览器,极大的提高了 ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(四)
本系列文章立志于从一个已经习得一门编程语言的基础之上,全面介绍Python的相关开发过程和相关经验总结.本篇文章主要是基于上一篇的程序员带你十天快速入门Python,玩转电脑软件开发(三)的基础之上, ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(三)
声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群5 ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(二)
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(一)
关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...
- 快速零配置迁移 API 适配 iOS 对 IPv6 以及 HTTPS 的要求
本文快速分享一下快速零配置迁移 API 适配 iOS 对 IPv6 以及 HTTPS 的要求的方法,供大家参考. 原文发表于我的技术博客 零配置方案 最新的苹果审核政策对 API 的 IPv6 以及 ...
- webpack快速入门——实战技巧:webpack优化黑技能
1.抽离jquery,vue(多个第三方类库抽离) 修改入口文件(webpack.config.js中) entry: { entry: './src/entry.js', jquery:'jquer ...
- IOS开发技巧快速生成二维码
随着移动互联网的发展,二维码应用非常普遍,各大商场,饭店,水果店 基本都有二维码的身影,那么ios中怎么生成二维码呢? 下面的的程序演示了快速生成二维码的方法: 在ios里面要生成二维码,需要借助一个 ...
- iOS开发——项目需求-快速回到当前界面的顶部
利用UIWindow实现快速到达顶部 如下图,在状态栏添加一个没有颜色的UIWindow(里面添加一个按钮),实现点击这个按钮时能快速的回到当前界面的顶部 核心代码 一.利用UIWindow实现到达顶 ...
随机推荐
- 【TCP/IP详解 卷1:协议】 第18章TCP连接的建立与终止
img { border: 1px solid black } T C P是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接. RST:复位连接,将连接重置,一般用在 ...
- Python爬虫小白---(二)爬虫基础--Selenium PhantomJS
一.前言 前段时间尝试爬取了网易云音乐的歌曲,这次打算爬取QQ音乐的歌曲信息.网易云音乐歌曲列表是通过iframe展示的,可以借助Selenium获取到iframe的页面元素, 而QQ音乐采用的是 ...
- java项目(非ssm等框架)下的quartz定时器任务
第一步:引包 要使用Quartz,必须要引入以下这几个包: 1.log4j-1.2.16 2.quartz-2.1.7 3.slf4j-api-1.6.1.jar 4.slf4j-log4j12-1. ...
- Java IO学习笔记(二)缓冲流
处理流:包在别的流上的流,可以对被包的流进行处理或者提供被包的流不具备的方法. 一.缓冲流:套接在相应的节点流之上,带有缓冲区,对读写的数据提供了缓冲的功能,提高读写效率,同时增加一些新的方法.可以减 ...
- jqueryEasyUI列表
背景 因为学习大数据开发这段时间,同时也学习java的一些知识.利用了近五个月的时间来投入学习,当然我选择了一个机构,因为已经做了四年多的开发,所以即使不是做的java但是java还是了解的,这段时间 ...
- 数位DP练习
水题 发布时间: 2017年6月22日 19:15 最后更新: 2017年6月23日 20:10 时间限制: 1000ms 内存限制: 128M 描述 给一个数n,求0~n内有多少个数满足 ...
- Android 动画——Frame Animation与Tween Animation
很多手机应用的引导页都是动画的,添加动画后的应用画面会更加生动灵活,今天博主也学习了Android中Animation的使用,下面来总结下. android中的Animation分为两种,一种是Fr ...
- 欢迎大家Follow me!微软MVP罗勇(Dynamics CRM方向)欢迎您!
我是一名八零后,来自湖南乡村,2002年毕业于大连大学工商管理专业,主要靠自学走上了编程之路.从2012年开始接触Dynamics CRM 2011,一直从事Dynamics CRM方面工作,熟悉Dy ...
- Maven服务器搭建
Nexus服务器软件安装和配置 目前比较流行的使用nexus搭建maven私有服务器,其实很简单,它就是一个web系统,从官方下载的包默认内嵌了jetty容器,所以需要提前安装好JVM,并配置好环境变 ...
- 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)
一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

