让你快速了解并掌握如何进行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

时间: 2024-08-12 08:59:43

让你快速了解并掌握如何进行iOS开发技能的相关文章

Unity3D如何集成ShareREC手游录像分享SDK,使游戏快速拥有录制视频功能(iOS开发)

一.准备工具 到Mob官网 下载 ShareREC For Unity3d SDK包. 工具概要:ShareREC是Mob推出的最完美手游录像解决方案,开发者只需3分钟快速集成,即可让游戏拥有强大的手游录像.语音及视频解说,第三方分享功能,同时后台还能提供完善的数据统计,可供实时了解播放量.分享量.下载量等数据.下载地址:http://rec.mob.com/Download 功能: 1.支持手游录像功能,游戏过程中可同步录制游戏视频 2.支持分享到主流社交平台,新浪微博.微信好友.微信朋友圈.

程序员带你十天快速入门Python,玩转电脑软件开发(二)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群538742639.群马上就满了,名额不多. 上节课主要讲解了以下内容: 为什么学习Pyth

程序员带你十天快速入门Python,玩转电脑软件开发(三)

声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群538742639.群马上就满了,名额不多. 这是高级程序员快速入门Python语言课程.助你快速学习Python语言.这是第三课. 程序员带你十天快速入门Python,玩转电脑软件开发(一) 程序员带你十天快速入门Python,玩转电脑软件开发(二) 因技术知识连贯性,还没有学习前两课的同学,建议点

程序员带你十天快速入门Python,玩转电脑软件开发(一)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言的你.有梦想的你,立志做全栈攻城狮. 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群538742639.群马上就满了,名额不多. 目录: 为什么学习Python? Pyt

iOS开发:2分钟快速集成支付宝快捷支付

?这篇文章介绍了iOS快速集成支付宝支付的方法,这篇文章中介绍的方法是通过一次封装,因此配备完结今后调用仅需一行代码即可支付宝支付,非常的便当,希望我们喜欢. 我仅仅根据官方的文档,对支付宝的SDK做了进一步封装,其间密钥的生成很简略,需要看官方的文档,官方的文档我在工程附件目录里也有一份,假设需要立刻集成,没工夫研讨的话,可以大致看一下密钥的生成即可,其他的配备我会在下面进行谈论. 要在iOS运用里集成支付宝支付,需要公司和支付宝签约,然后生成相应的密钥.密钥的生成支付宝的开发文档里现已说的非

iOS开发中通知(Notification)快速入门及推送通知实现教程

iOS开发中通知(Notification)快速入门及推送通知实现教程 标签: NSNotificationCenterNSNotification 2016-11-14 00:18 232人阅读 评论(0) 收藏 举报  分类: iOS(400)  转载自:http://www.111cn.NET/sj/ios8/90190.htm 通知(Notification)是开发框架中观察者模式的一种实现方式,内部的实现机制由Cocoa框架支持,通常用于试图控制器和数据模型的交互.通过通知,可以向一个

7年iOS架构师教你如何快速提高并掌握 iOS开发核心技能

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

大数据好学习吗?如何快速掌握大数据开发技能

大数据好学习吗?如何快速掌握大数据开发技能?经常被学员问到:大数据好学吗?想学大数据怕学不会等问题.我想说的是,大数据在当下是个非常热门的话题,大数据在深刻的影响着这个世界,在促进传统行业升级改造.引领新兴产业和新兴应用蓬勃发展.提升社会运行和管理效率等方面,大数据正引发新一轮革命.大数据是时代潮流,如果学一下就会了,那大数据行业现在恐怕已经被挤破门槛了吧,想学大数据还是得下苦功夫才行. 想学大数据,先把这几个技能学会再说: Apache Hive2.1 Hive是建立在Hadoop上的数据仓库

Python3快速入门(十七)——Python扩展模块开发

Python3快速入门(十七)--Python扩展模块开发 一.Python扩展模块 1.Python扩展模块简介 Python与C/C++交互的方案有多种,如Python C API,SWIG,SIP,ctypes,cpython,cffi,boost.python等.Python只是一个语言规范,有很多具体实现,CPython是标准Python,由C编写,Python脚本被编译成CPython字节码,然后由虚拟机解释执行,垃圾回收使用引用计数,Python与C/C++混合编程本质是基于CPy