V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
iOS 开发实用书单
iPhone App Development: The Missing Manual
Cocoa and Objective-C: Up and Running
Cocoa Programming for Mac OS X
深入浅出设计模式 Head First Design Patterns
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
GeekHub
pythonee
V2EX  ›  iDev

iOS 开发有什么国人写的比较好的书籍推荐?

  •  
  •   pythonee · 31 天前 · 5195 次点击
    这是一个创建于 31 天前的主题,其中的信息可能已经有所发展或是发生改变。
    59 条回复    2020-09-23 20:22:48 +08:00
    justin2018
        1
    justin2018   31 天前
    李明杰的视频不错 😁
    JiangShenMing
        2
    JiangShenMing   31 天前
    @justin2018 赞,杰哥的视频讲的非常细。
    chiaf
        3
    chiaf   31 天前
    chiaf
        4
    chiaf   31 天前
    @chiaf 喵神翻译和编辑的书
    ftu
        5
    ftu   31 天前 via iPhone
    《 iOS 开发从入门到放弃》
    z1113456051
        6
    z1113456051   31 天前
    @chiaf 全买了一本没看
    chiaf
        7
    chiaf   31 天前
    @z1113456051 🤣,去年写 swift,翻出来看了看
    MrStark
        8
    MrStark   31 天前
    反正不要买某个人写的所谓《 xxx 进阶》就行
    fffang
        9
    fffang   31 天前
    那些书都太老了,看五子棋的博客就行。
    Kamiimeteor
        10
    Kamiimeteor   31 天前
    求问,前端开发 JS 有什么国人写的比较好的书籍或者视频推荐吗?
    lujie2012
        11
    lujie2012   31 天前   ❤️ 3
    iOS 的书籍买喵神就可以,然后 boxue 的视频不错,另外 iOS 本身知识的书籍不多,更多的是需要你去对官方 SDK 文档及 Foundation 的理解学习。官方 API 和库你能熟练使用和理解更多细节,官方的文档和指导你能全部了解 iOS 的进化和技术底层架构。涉及视图绘制技术,音频,网络,本身都是最基础的东西,但是苹果没有给你知识辅导,不自学这些,永远是皮毛,觉得 iOS 客户端没有东西,其实东西多的很,例如 socket 编程,什么语言都可以实现,什么平台都有,但是 iOS 没有告诉你这个很重要,你就不学,不深入,调用一下 API 就好了。其实这才是真正的技术,在深挖就是 TCP/IP 协议,蓝牙协议,学编程要不要学这个呢?学 iOS 要不要学这些呢,肯定的,做程序员,不学这些就永远 35 岁的干活。
    lujie2012
        12
    lujie2012   31 天前   ❤️ 5
    学完这些 7 层协议的东西,什么技术和语言都是从二进制编程字节编码,变成 Uicode,变成语言。那么语言写好的代码,变成什么呢?写好的代码变成汇编语言 command 再变成二进制,再用户安装二进制,二进制再在运行环境变成 code 在执行逻辑。不许编译器原理怎么优化代码,怎么去做安全加固,反 hack 。如此思考,HTTP 到数据的展示是最简单的编程工作,但不是程序员唯一的工作。不如程序开发有什么技术。最新我在想一切的数据通讯,例如家里的电视遥控器,怎么做数据交互,转换,传播。光波,红外线,wifi,5G,想象最底层的实现和全路径思考才有意思。所以,计算本科教育虽然水,但是现在想想那时候用的滤波器和调制解调器,上模电不知道干什么,现在工作后,慢慢都明白了。这就是本科专业教育的本质和区别,系统的教育是有意义的,为什么学高数,都明白了。对了,你对加密了解清楚吗? HTPPS 怎么实现的了解吗,看不过源码实现吗?程序员对加密都不清楚,那真的不算高阶程序员。openSSL 库,都可以让你完很久。iOS 也好,android 也好,只是各自技术封装的一个平台,解决一定的问题。但是你需要看透本质了解一个平台真正的东西,那么你也将知道技术的发展,不是被动。有些题外话,iOS 么,你把他当成 HTTP+页面 来玩天花板很低,你拿来做系统完成,那天花板无限高。后面 20 年什么技术和先进应用基本是移动带领的变革。
    lujie2012
        13
    lujie2012   31 天前
    以后还有说 iOS 没有人要,麻烦转发该帖子,类似什么语言不行,什么淘汰了,月经贴太多了,道理都是一样的。
    whiteWind
        14
    whiteWind   31 天前
    @chiaf 兄弟,有没有像这种的 android 的网站,跪求
    ericgui
        15
    ericgui   31 天前
    技术书籍的话,是不是容易过时
    allanwell
        16
    allanwell   31 天前
    @lujie2012 牛逼,泊学 ID 是啥
    lujie2012
        17
    lujie2012   31 天前
    @allanwell 我 boxue 完成了 156 个 iOS 的视频,终身会员,ID 不知道是什么,名字叫 Mike
    boxue 的视频看一遍懂一点点,过段时间在看,又有一点点理解,例如 RXswift,protocel,sequence 这些,另外可以结合 object io 喵神三本我都买了一起看,对 swift 原因写法会更高阶,你的思想更接近 apple 官方或者大牛。例如序列化,持久化,函数编程,这些流行的概念带入项目中。对了,如果学 iOS 都没有用过 coredata,或者 Sqlite 进行持久化,那么几乎不可能成为高阶程序员。Coredata 固然难用,难学,但是我个人认为必须耐心学完,必须每个项目都使用,里面的设计思想和理论不是白费了,每年的 WWDC 都有 session 关注这一块。对了,什么 iOS 的资料是最先进的,那就 WWDC 里面的 session,每年差不多 100 个介绍最新的技术和解决方案。什么书都过时,但是 WWDC 东西含金量最高。所以做为 IOS 开发,WWDC 的东西可以的话全部 session 学完,最近 7 年的 WWDC 都要学完。对咯,有时间看一下每年的产品发布会,B 站里面有,看看苹果产品进化。另外,以上学习最难的是什么,是英语水平!!!! 我现在每天学习英语,英语水平上来了,感觉发动机动力杠杠的。二手知识基本过时,不完,要一流,那么英语水平觉得要一流,差不多雅思 7 分这个水平,写代码看资料,觉得不是一个等级哦。
    allanwell
        18
    allanwell   31 天前
    @lujie2012 学会了,我也按这个路线走一遍
    lujie2012
        19
    lujie2012   31 天前   ❤️ 2
    对了,iOS 岗位也很细的,你可以完日志系统,埋点系统,推送系统,crash 系统,socket 聊天系统,实时在线系统,视频系统,相机系统,地理位置系统,三维系统,AR 系统,声音系统,安全系统。玩的东西多了呢!没有饭吃?没有前途?大部分人是岗位,是项目驱动,我也是,没有事情没有遇到难题就不会进步。但是要自我驱动,那么天花板无限高哦,5G 还不是终端。你都可以去玩,好比玩音乐,写歌作曲,你能随心所欲组合,基本是就是高级人才了。写代码一样,要玩它,玩技术,不然白费了那些年的教育。对于业务和技术,等你技术积累到一定程度,我个人倾向于先做技术专家靠谱一点。谁是榜样呢? Jspatch 的作者就是榜样,被挖到蚂蚁 P8 !国内某些人写的 iOS 书籍,基本是垃圾,不知道提。另外,可以补充学习的,GIT,正则表达式,HTTPS,ngix,tomamcat 源码这些书籍。
    月经贴很多,要流量,要焦虑,时间和付出是公平的,不要重复劳动,要要技术迭代,要不断思考。看最底层的书,思考最底层的原理,你会不迷茫。

    完!
    lujie2012
        20
    lujie2012   31 天前
    本人是之前 object-c 开始入门 iOS,全部自我学习写项目找工作混饭吃,后面 19 年开启 Switf,二次学习 iOS 开发,突破了天花板。对,我开始没有关注 swift,现在 swift 成熟了,所以我决定从头开始学习 iOS 的一切东西。收获还不错,肯了好多书,当然是成长了。
    fffang
        21
    fffang   31 天前
    @lujie2012 coredata 有什么特别好的场景使用吗,我做了五年了,都是用的 sqlite 。
    lujie2012
        22
    lujie2012   30 天前
    @fffang Corodata 主要是的他们设计思想和结构,可以买 coredata 应用开发实践指南+core data 喵神那本书。我也是看了这两本明白 coredata 真正的含义。coredata 最大的缺陷是没有加密!!!!! 大部分项目采用 sqlite 是为了加密!本质 coredata 底层也是 sqlite,它好就是封装啊,你想想你手机相册 1 万多照片,官方 APP 很多应该是 coredata 来实现。会玩 coreata,肯定会玩 sqlite 。最好项目里面都用,用着用着就更熟练了。sqlite 做书版本管理和迁移更方便,直接 sql 操作数据库。都学都学,都用起来,我的建议。
    maxmax
        23
    maxmax   30 天前
    这都什么年代了,还有人准备深入发展 iOS ?要搞大前端了哦,要不然被小年轻吊着打
    maxmax
        24
    maxmax   30 天前
    @lujie2012 重点你 iOS 你能深入到什么程度? 除非你进头部企业,最好是外企。国内的企业呵呵
    ifxo
        25
    ifxo   30 天前
    随便一本就可以,水平都差不多,师傅领进门
    Leonard
        26
    Leonard   30 天前
    @lujie2012 你说的大部分没毛病,想深入学,往底层学,学精学通,iOS 天花板自然高,但市面上常见的各种编程语言又何尝不是如此,学到这种程度付出的时间精力必然不会少,你把这种精神放到别的语言上一样能达到高水准,相较起来 iOS 的性价比就显得不高了(当然你底层原理都搞通了转方向也快)。我也是做 iOS 的,iOS 有一个点非常致命,就是基本绑在苹果公司身上( swift 所谓的多平台现在也只是到玩玩的阶段),路有点窄。
    lewis89
        27
    lewis89   30 天前
    @lujie2012 #20
    @Leonard #26

    屠龙技罢了,你学了 TCP 七层有个屁用,你又不是去 Google 搞 BBR,话说在协议栈锤炼的程序员有几个,行业分工决定了 99%的人 在封装好的黑盒上做应用,1%的人去从事基础技术体系的开发。

    35 岁的问题从来不是人的问题,而是 IT 技术行业本身是一个不断降低自我门槛的行业,因为 IT 技术它是用来服务社会的,不是给你去搞研究跟底层开发的行业,你说我写个日常的记账软件,非得从你调度算法+TCP 协议栈开始搞起,那特么还搞个屁的开发。
    lewis89
        28
    lewis89   30 天前
    @Leonard #26

    我也一直在学习前端跟 IOS,作为未来独立开发者的技术储备,但我从来不去研究背后深入的技术原理,CSAPP 包括操作系统相关的书我至少读了 3 遍,但这些跟 IOS 开发基本上半毛钱关系都没有,因为 APP 跟操作系统原理至少离了十万八千里的距离,另外就是这些底层知识根本用不上,大部分独立开发都是业务驱动的,有钱才有技术研究的需求,除了音频 视频等特殊算法场景,大部分技术方面的需求都是业务驱动的 UI 交互跟业务计算。

    我本身主业是后端,后端的技术体系,我也一直在补充,但一个很显然易见的问题就是大部分微服务技术体系的工具 根本就没有应用到公司业务上的场景,因为业务体量就摆在那里,又不是所有的互联网行业的产品都是高频应用,而且大部分公司所应用的技术本身就很简单。35 岁的问题从来都不是技术的问题,而是年纪大了不能加班的性价比问题,我承认有些技术岗位确实需要资深的技术能力跟技术积累,但大部分程序员应该要扪心自问一下,自己是否处在那个岗位上,或者有能力找到这样的岗位或者公司,如果是业务导向的软件开发程序员应该早点给自己找条后路,把技术当做一个资产来看待,而不是想着自己锻造一把技术上的屠龙刀,但最后却发现市面上的龙都让大厂的人给杀了。
    lujie2012
        29
    lujie2012   30 天前
    不争辩,我之前想说明一般程序员和高阶程序员解决问题思路问题。学习 7 层协议,不是造轮子,是知道水的源头。平台语言个有喜爱,萝卜白菜,兴趣是最好的老师,好奇心是最好的动力。小程序,Weex,React 不是不会写,API 文档看一下,组件模块用一样,市面上什么样的 APP 搞不定?但是性能优化,高级特性,没有足够功力你能搞定?前端目前大量时间涉及 UI 开发,后端需要算法,如果不自己去补充知识,那么所谓大前端天花板当然低。阿里前端高 P 多少,当然是后端高 P 多啊。But,不管那个方向,最重要是成为专家。成为专家只看到自己 SKD 范围内的知识肯不够,前端不能看后端知识?我把 tomact,ngnix,spring 源码都看过,当然也忘记,但是我就是想知道数据通道怎么建立,TCP 怎么维护。google 牛皮就是发现目前协议不行,自己该协议,加密算法,HTTP2 通信,消息协议,TCP 协议,它敢于创新和实践。目前我关注技术,不谈业务和赚钱,想在互联网,信息技术发展,只会应用技术是大部分人,but 要创新成为专家要学好多哦。
    lujie2012
        30
    lujie2012   30 天前
    再举个例子吧,Rx 这个东西,java 有 RxJava JS 有 Rxjs,iOS 有 Rxswift 现在各个平台都是把对方好的设计和轮子拿过来,编程思想和设计思想是一样的。但是因为编程语言和平台业务特性,没有机会接触更好的东西。那么就需要突破官方提供的限制,用编程思想来设计和架构改造自己的项目。如果只安于会基本使用语言,不精通语言,了解背后的逻辑,那么永远是进入不了程序员门的。搬砖是因为洪流,需要创造很多东西,所以培训班培训一下就可以干活,拿高薪。但是这不是真正高薪的原因,本质是技术结合业务,最后带来发展。有苹果在,方向不会缺乏市场和创新。我个人计划是学习英语+开发,在成为高级开发的同时,英语水平好,视野更好,东南亚,海外市场不是没有机会。当然,在目前巨头的环境下,你自己单干,那肯定一个浪花没了。
    foo123
        31
    foo123   30 天前
    @lujie2012 别丢人现眼了,说了一大堆还不是说的计算机基础课程么,iOS 客户端岗位就是垃圾,没应用场景,你能学会?也不知道你在哪工作,能力要是没到 P7 的话就闭嘴吧
    qq2511296
        32
    qq2511296   30 天前
    @foo123 你咋那么能说话呢,我看 @lujie2012 人家的意思就是说要多学习吧。
    foo123
        33
    foo123   30 天前
    @qq2511296 iOS 有 jb 值得学习的,还一本正经欺骗小朋友
    Carmine
        34
    Carmine   30 天前
    楼上大佬好多,我要辞职去卖房子了。~
    neimengwuyanzu
        35
    neimengwuyanzu   30 天前
    @maxmax 看大厂面经 好像还是抓着优化和底层问吧?我是搞 Android 的。。。。
    lujie2012
        36
    lujie2012   30 天前
    P7 也很多水的,我主要意思是如何进阶 iOS,题目是 iOS,我分享这些,我个人觉得可以提升作者的 iOS 开发水平。我认识的 p6 做的自我作品比很多高 P 还多,自己的产品很牛。不管做什么语言开发,按照我的方式结合自己的工具和语言去努力,一定可以更高水平。iOS 本身我就说了,只玩 HTTP + UI 编程,天花板很低,但是它是一个完备的系统,知识足够多,你就可以玩很多,天花板更高。
    写来去就是 AFNetwork/Alamofire + masnory/Snpit + uisatckview + auotlayout 能带来什么结果呢?
    ArJun
        37
    ArJun   30 天前
    @lujie2012 现在 APP 成本过高,中小公司基本都不重视这一块了,而且目前同样三年的经验的后端前端移动端,IOS 可能属于比较没有地位的了; 看你说的会写框架就不行了?一般公司本来就是面向业务编程,能解决业务问题,移动端一般公司哪管你那么多技术问题;还有一个更严重的问题,就是一般去面试 IOS 的公司面试造轮船的风气实在太重了,大部分进去不就是个 UI 仔嘛,认清现实吧,本人面过其他技术,比 ios 好的多
    lujie2012
        38
    lujie2012   30 天前   ❤️ 1
    @ArJun 每个公司开发 APP 都想造航母,现在的确这样。就是大部分进去变成 UI 仔,所以我才建议如果从事 iOS 或者移动端开发,一定要自我学习,自我突破限制。我之前同事一起做 iOS 端,后面转 JAVA 还升级了。But 但是我始终认为我们项目的技术解决方案和技术不够强,不是没有业务,业务好的很,但是就是感觉移动端开发节奏和技术体系太碎片,每个人一个模块,最后重复劳动,效率还不高。对于这样的现在,肯定需要提升自我去解决,而不是等待机会。因此业求变,产生了 Weex,Reactive,flutter 这样快速解决两端,热部署等技术,解放 UI 仔。因此不思进取,大部分 iOS 经过几年后,水平明显没有提升,成长有限,不如其他 Java,其他岗位同龄技术深度。因此我就给出了上面的建议。
    luneric
        39
    luneric   29 天前
    @lujie2012 赞同 可以加好友一起学习啊
    lujie2012
        40
    lujie2012   29 天前
    @luneric 因为之前犯过大部分 iOS 开发者犯过的错,没有长进了。我决心重新在 iOS 方向深入认真的投入一次,看自己可以扎入的有多深。iOS 的书籍少的可怜,我找不了全部书籍网站和书城,买的都是国外出版的,iOS 动画核心这边书 国内开发者总结不错,iOS 逆向这本书,写的不错。我大概推荐一下书籍:switf 进阶,corodata 应用开发与实践,corodata (喵神),精通 Git,精通正则比导师,HTTPS 国人写的,swifter tips2,autolayout 适配(比较老,但是唯一一本将约束布局的书籍)。另外需要补充的书籍,可以看,tomacta 源码,nignix 源码关于 HTTP 协议后端相关的东西。很多东西,写不成书,因为本身没有多少内容,有些国外有,但是 400 块,没有翻译版本。例如关于布局,从原始,frame-》 constriants-》 archor-》到 stackView 其实苹果也是在不断的提供解决方案,目前最好的原始布局就是 stackview+archor+constriant 但是没有这一一把本书写,我也是翻边了官方文档,在各自项目中看到蛛丝马迹去思考对比。老话长谈,最好的资料是苹果官方开发者文档,官方的 wwdc session 。为了更深入理解苹果产品,我把历年的 WWDC 看到 2007 年 iOS6,了解各个版本特性和发展。我还把产品发布会看到了 2017 年发布 iphoneX 。 以为没有关注,现在才明白要全心投入。哈哈,学到了很多苹果产品使用高级用法,体验了好多产品介绍。这个是我的 https://github.com/luffyjie
    lujie2012
        41
    lujie2012   29 天前
    真心经验分享,中文书籍的东西看到 30%的技术,英文书籍的东西看到 50% 还有 50%在官方英文文档,各位一定要学好英语,在官方找一手资料和解决方案。这样就慢慢可以成为 contribute,为社区贡献代码和解决方案,成为开拓者了。不然永远是旁观者,玩技术,就希望玩的极致对吧,好比玩音乐,玩音乐的的境界可以看 Vista 2002 年演唱会。
    经过 10 月,我开发的项目上线了,可以关注一波,https://apps.apple.com/cn/app/id1492659998 这是我从零到无使用 swift 开发的项目,当然很多不足,我自己还不满意。but 感谢公司让我有机会第二次在 iOS 端投入时间,还感谢公司提供的英语学习网站,https://english-bell.com.tw/default.aspx 我大概充了 1 万 8 坚持每天 25 分钟的一节课学习 DME,现在学习了 300 天,学习英语推荐:购买朗文当代+DLL ebook + English bell 使用 SKype 上课,菲律宾老师 24 小时可以学习。
    lujie2012
        42
    lujie2012   29 天前
    补充一本书籍 LLVM,sqlite 数据库淘宝有卖。有时间话多写了这些东西,V2ex 也不能删,有办法删除可以告诉我?
    感谢公司提供的机会,10 个月看了 10 多自己买的本书,还以为业务补充了好多知识,有坚持不下去的时候,但是就想把项目上线。最后克服了困难,回过头有收获和总结,我现在爱上了看技术书籍,拨的越细越好,也想去看算法了。类似写论文一样,没有秘密,直接分析到底。目前在模块化接入 Flutter,native 开发两端速度不一样,某些 H5 做,我们就很闲了。现在的目标差不多就是把 Flutter 玩转,基本是二次从头学习 iOS 花了 1 年时间告一段落。
    iOS 开发者一定要关注 boxue 网站,可以的话买个终身会员,下载博主的 app,看看他的项目架构,里面的视频学起来。
    不讨论, 看 Flutter 文档了。iOS 有没有人要,肯定要,前提你真正的热爱写代码,可以分析问题,解决问题,了解编程本质,精通语言,熟练前前后后一个 APP 的全部 API 和细节实现。好比相机,你只会 git 上找一个高分 Star 用用就好是不行的,那么你永远不能体会苹果原始 API 设计思路,做不到随心所欲的使用。希望都大家有时间去琢磨,有成长,发布发财,是人生的事情,出身家庭背景很多因素。但是想做一个优秀的程序员,没有偷懒可以做到的。
    luneric
        43
    luneric   28 天前
    @lujie2012 好样的 无私的分享这么多经验 有你这样的思路不愁变不成优秀的程序员
    zhangferry
        44
    zhangferry   28 天前 via iPhone
    @foo123 口气这么大,请问你 p 几了?任何技术都有用武之地,但绝不是用来装逼的
    foo123
        45
    foo123   28 天前 via iPhone
    @zhangferry 啥 B
    zhangferry
        46
    zhangferry   28 天前
    @lujie2012 能否留个联系方式交流下,微信,邮箱都可
    shoujiaxin
        47
    shoujiaxin   27 天前   ❤️ 1
    @foo123 岗位垃圾您还搁这找 iOS 远程兼职呢?真就狠起来连自己都骂,这么厉害不换个岗位?


    @Livid 这人在楼上人身攻击,看历史回复,老键盘侠了
    lujie2012
        48
    lujie2012   27 天前
    @zhangferry https://github.com/luffyjie 有什么问题可以给我发邮件,WX base64: dWlzdGFja3ZpZXc 。看了博客,我的项目是 swift+rxswift 架构,有机会一起交流一下。
    我最近在这里发言是 018-06-15 12:00:43 +08:00 几乎 2 年了都是不登录的,不发言。。。。最新是项目忙完一个阶段闲了。。。

    V2ex 比较尴尬是,发的帖子不能删除,有办法能把 V2EX 上全部的帖子和留言删除了吗?????
    Livid
        49
    Livid   V2EX Moderator   27 天前
    @shoujiaxin 谢谢举报。那个账号 foo123 已经被彻底 ban 。
    zhangferry
        50
    zhangferry   27 天前
    @lujie2012 为啥要删除啊,其实写的挺好的,能看出来楼主是个热爱技术的人,哈哈。另外,这个 base64 我咋解析不出来啊🤣,文本有误,是漏了几个字符吗
    zhangferry
        51
    zhangferry   27 天前 via iPhone
    @lujie2012 要不你加我吧,zoogfly
    20151024
        52
    20151024   25 天前
    一个人的职业发展,要靠奋斗,也要考虑到历史的进程;
    iOS 开心确实不行了,除非你有信心成为 iOSer 中的佼佼者,但大部分人都是众人,放过自己,学点前端或者后端吧;
    lujie2012
        53
    lujie2012   23 天前   ❤️ 1
    感谢 @zhangferry 的整理

    一下是我分享的 iOS 书籍列表:每一本都是我自己买了的,而且看完,每本书不同时候去看体会不一样,话费时间不一样
    objective-C
    Objective-C 程序设计
    Objective-C 高级编程
    Effective Objective-C 2.0
    Swift 权威指南 Swifter 100 个 S
    wift2 开发必备 Tip
    Swift 进阶
    Swift 常用算法
    函数式 Swift
    iOS iOS 数据库应用高级编程
    iOS 动画核心技术与案例实战
    iOS Auto Layout 开发秘籍
    高性能 iOS 应用开发
    iOS 测试指南
    iOS 应用逆向工程
    LLVM COOKBOOK 中文版
    AV Foundation 开发秘籍
    Core Data 应用开发实践指南
    Core Data
    其他计算机书籍
    SQLITE 权威指南
    图解数据结构与算法
    数据结构与算法经典问题解析( Java 语言描述)
    数据结构教程
    Java 9 编程参考官方大全
    Java 并发编程实战
    深入理解 Java 虚拟机
    深入理解 Nginx
    Tomcat 内核设计剖析
    C Primer Plus 中文版
    音视频开发进阶指南
    zhangferry
        54
    zhangferry   23 天前
    @lujie2012 我刚打开 v2ex,看你已经写上了,哈哈😄
    lujie2012
        55
    lujie2012   23 天前   ❤️ 1
    https://mp.weixin.qq.com/s/cKuVFRPUnnScLM3y26mgIQ

    学 iOS 是不是 49 年入国军,哈哈我不知道,对于我来说我 14 年 7 买 mac air 自学入门,怎么的也是从 iOS7,xcode5 玩到了 iOS12,xcode10,也去了 BTA 正式岗位干了 2 年多吧,我没有精通是我自己的事情,如今我再次投入时间目的就是一个玩精通,精通 iOS 语言,底层,设计模式,结合跨平台框架 Flutter,可以解决快速开展业务,快速迭代。人生的 boss 自己选的,不能一直逃避,我就像好好和它战斗一次。这个选择每个人可以自己做主,不能一直活在网抑云时间吧。
    对于新手,或者准备从事 iOS 开发的同学,一下是我送给你们的大礼包,希望能帮到你们。当然你有钱,可以请类似我这样的经验丰富的老手,全天候手把手教你,达到我目前水平半年足以,没有必要想我一样苦学。自信的人,有某些障碍的人,也许和我一样,自能学海无涯,苦作舟了。
    这里有一篇关于 iOS 平台 Autolayout 的总结文档,和当时遇到疑惑一样,一直想找到完美的解决 iOS 适配问题。苹果从 15 年到 17 年也是不断更新 API,最后算是满意的实现 native 的布局。
    https://sarunw.com/posts/history-of-auto-layout-constraints/
    那就是从 iOS9 开始的 Layout Anchors + UIStackview
    为什么 iOS 有那么 constrians API,看到很多种写法,你是不是头晕,但是你需要知道本质,知道它们来来历时,你就很清晰了。我就想做到这样的清晰对于开发使用的工具。我的意思是苹果自己也是花了 3 年时间,用了不同的技术方案一步一步提升体验。但是你需要知道他是借鉴了什么工具和技术,iOS Auto Layout 开发秘籍这本书会告诉你,是美国大学开发了一种线性解决方案。因此对于 Flutter 上面,他们的 widget 布局绝对也是 autolayout 不用说,组件属性设置绝对和 iOS 一样,你会熟悉的不得了。你看到组件,生命周期肯定熟悉的不得了,都是一个套路。

    所以,iOS 香不香,赚不赚钱,前途怎么样,我看到厉害的朋友有去澳大利亚移民了,有去微软,失意的也有去做 java 了。
    等我把 flutter 跨平台熟练精通,基本是客户端可以告一段落,可以满足业务多变,需求频繁改动,nativ 开发慢的问题。后面有时间,三,五年我把 java 的 spring 全家桶学来用也不是不可能,androidsyudio,eclipse,vscode 都安装的有。我相信,你把 HTTP,tomcat,ngnix,https 源码三本书啃完,你就知道后端本质在写什么逻辑了,怎么和客户端打交道。在啃完 spring 源码,AOP 搞定,你就知道切片和事物,注解多么让人爽。然后各自框架就是解决某个特定问题,消息中间,数据库分布式,缓存,session 管理,权限,角色管理。

    希望新手可以破除平台限制的思维,好比天下武功,学百家不如精通一门,有了武学根基,怎么就不能学其他武功呢?当初移动端很多是 Java 的同学转来做的

    你说就业好,容易找工作,好跳槽,去大公司,工资高,学什么?抱歉,我常在想当初我高考和 985 有多少距离,现在去重考是否可以随便去 985 。有什么时候需要问自己,曾经自己付出了什么,如果没有付出,那么你准备从新付出多少。很多人智商高,优秀,从小的,到了好大学,找到好工作,也是一路顺利。而为什么很多人,读书,大学,毕业,工作,总是纠结不满意。希望反思自己。相信 v2xe 上潜水大佬很多,but 很多帖子都是恰流量,贩卖某些东西。
    最值钱的是论文的文章,是一线的实践经验,而不是快手,抖音的视频。

    iOS 目前是一个偏 UI 的活,但是我自我看来这点只占 40%的技术水平,你精通,吃透看到什么 APP 什么效果都可以做处理,一摸一样没有一点难度。但是不是完了这个效果就可以给你满分,前端的需求变更,运营活动才是让人头痛,所以大部分时间被写页面逻辑占据。大概 2 年时间,你全心投入原生可以玩的没有一点难度。要想精通,你去看招聘要求,基本是 3-5 年起,如果毕业 3-5 五年,个人根基不高,真的就是很浅的入门水平,因此工作越来越难找。这不如 3 年的前端,可以飞起的开发业务,反正业务的多,机会多,成长性价比必须高。


    最后,兴趣,有么的兴趣,选什么自由,只希望你选择之后坚持下去。iOS 开发,确实对于现在的没有准备心里的人来说,不友好,拘束很大,产出比不高,深挖不了。对于认为程序员开发是吃青春饭,认为是高薪职业,认为发财职业。程序员好不好干,有没有前途。我不回答,我自己体会是科技最前沿,新的革命和效率提示工具。要做到出色和高级程序员,需要非常好的素质,自我学习能力。好比现在给人才分等级,A,B,C,D,E,我认为这就不是人才了。这就是游戏里面的高级兵种,和低级兵种而已。人才是创新,是一个 team 的合作,每个人找到合适的位置,好比大海上一艘船,你说海贼王 one piece 上面的船员,你说谁是人才?谁不是人才?你看 JAck 船上出来的各个都是巨头。这个和工作内容无关,岗位头衔无关,靠本事吃饭,而是和你的干同一件事情的水平有关系。所以本质上你选择什么语言,方向和你个人成就有没有关系呢,也许没有多少关系,和你做到哪一种优秀程度有关系。
    所以,希望的回答可以帮助需要的人。
    skyerStar
        56
    skyerStar   21 天前
    @lujie2012 写的挺好. 分享自己的思考和经验, 感谢
    lujie2012
        57
    lujie2012   13 天前
    最近有买了基本是补充一些:
    1.HTTP 权威指南,主要想看关于 http 缓存实现机制部分
    2.人件 英文版本,这是我买的第二部纯英文书籍,现在能买英文就买英文版本,可以更清晰理解,还能提高阅读
    3.flutter 入门到精通 2
    4.图解数据结构与算法
    5.企业应用架构模式
    6.数学简史
    7.计算机的构造和解释
    8.设计模式,可服用面向对象的软件基础
    9 。新东方,世界名校
    10.TCP/IP 详解 1

    有三个小伙伴加我微信,今晚上还给一个和我曾经一样迷茫对 iOS 遇到瓶颈的小伙免费 1 小时微信鼓励和指导。小伙子一样,想再次投入一次 iOS 的开发,提高自己。如果你有 iOS 问题,可以加我微信,有缘有时间可以帮你解答,WX:uistackview 除了 git 没有任何社交媒介,all destroied,这里是算留下脚印比较多的地方。

    学习 iOS 本质不能单单学习 iOS 的开发,而是成为程序员思维,思考一个系统和架构,建立牢固的技术基础,所以需要补充很多自己不足的地方。

    最近我把 flutter 官方网站文档看完了,还把 25 个视频看完了,有点迷糊,最后周末在书城把市面上全部 8 本 flutter 书翻完了,看完了两本。我的体会是非常开心的,书籍把我不清楚的细节再次讲解。我成为了 flutter 粉丝,我认为 flutter 是移动端的未来,绝对的战斗力,各位移动端小伙伴一定要学习 flutter 开发。dart 语言我也基本是熟悉会使用,和 swift,java 一样很多一样的,就是有些特色函数和方法例如》。我也按照下载了很多 demo,官方的 demo 下载跑起来了。
    目前我在集成模块到现有客户端,打算共享当前的 native 网络层和一些组件。stateless 和 stateful 控件通过看书也目标了,各自现有组件和布局基本是清楚咯。我自己的项目和新的项目我一定会采用 flutter 来编写。如果我把模块化集成解决了,我也会使用我现在的网络架构模块,业务用 flutter 写,目前在实践中。

    flutter 的生态和工具,以及实现方案,googole 的支持,文档,我觉得真是模范!不是简单的的学习一直 ui 实现,而是学一套解决方案,更可以期待 dart 将来成为服务器,前端的开发语言。object-c 真的是古董语言了,各位 coder 一定要学习现代化的语言了,比如 swift,dart,不如很多思想无法提高。java 算是中年语言了,如果一门语言不支持范闲,closer,高阶函数,协议,那真是无法体会很多乐趣。

    周二晚上发布会肯定要看啊!我都把历史的发布会看到 2012 年了,已经爱上了,体会到了其中的乐趣!肯定是看英文版本,学习的机会。

    等我把 flutter 学习完,用到溜溜的,也许弄一个微信公众账户,分享一下自己如果度过这个迷茫到提示自我的阶段,以及学习经历和每一本书的体会和用法,记录一下自己,可以用自己的实践和真实记录帮助需要的 iOS coder,博客要维护和搭建麻烦。
    lujie2012
        58
    lujie2012   11 天前
    在朋友的鼓励下,我建立自己这个时期的学习笔记,也许等我度过这个时间之后,不会这样碎碎念了,没有博客,我只好用 WX 公众账户来记录了,这些书籍使用英语学习资料我在 [英语及 iOS 移动端编程学习笔记] 刚刚新建的 wx 公众账户整理,方便需要的同学查找。
    EggmanQ
        59
    EggmanQ   4 天前
    看完回复下来有种 iOS 又有人要的感觉了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4476 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:58 · PVG 10:58 · LAX 19:58 · JFK 22:58
    ♥ Do have faith in what you're doing.