十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
掌握技术和管理两方面的吧
目前成都创新互联已为上千家的企业提供了网站建设、域名、虚拟空间、绵阳服务器托管、企业网站设计、尼泸西网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
技术方面:熟悉掌握Objective-C语言、XCode开发环境、ios UI布局、架构计; 理解面向对象设计的基本原则,熟悉常用的设计模式,有独立分析和解决问题的力; 理解手机客户端软件及服务端开发特点;
管理方面: 理解和分析产品需求,制定合理开发计划; 负责公司IOS端APP的开发和维护; 带领团队解决各种开发上的问题,确保项目按期完成; 提升团队成员整体水平,对产品提出改进意见;
[img]随着移动互联网流量红利的逐渐退去,iOS程序员正在面临开发岗位增速下降的现实问题,一方面App开发的热度在下降,另一方面大型互联网平台相继推出了自己的小程序生态,在这些因素的综合影响下,iOS程序员的岗位竞争压力将进一步加剧。
作为iOS程序员来说,如果想在技术研发的道路上走得更远,可以从以下几个方面入手:
第一:丰富自身的知识结构。 在当前大数据以及产业互联网的推动下,软件开发的功能边界在不断得到拓展,同时由于大量的互联网公司开始采用数据驱动的运营方式,所以开发团队小型化的趋势也比较明显,这就要求程序员要具备更丰富的知识结构,以适应不同的开发角色。iOS程序员可以进一步从岗位任务开始进行知识结构的拓展,比如进一步丰富前端开发知识就是不错的选择,iOS程序员也完全可以走全栈开发路线。
第二:跳出iOS的生态圈。 iOS的生态圈相对来说还是比较封闭的,而且iOS程序员自身可以发挥的空间也相对有限,主要原因是系统的封闭性所导致的。如果想综合提升自身的研发能力,可以考虑跳出iOS的生态圈。
第三:走研发级路线。 iOS程序员也完全可以走研发级路线,走研发级路线需要做好三件事,其一是选择一个主攻方向;其二是有扎实的基础知识储备;其三是能够不断完成岗位升级,从而获得更多的资源整合渠道。不少应用级程序员在发展的过程中会遇到较大的上升瓶颈,通过读研来完成岗位升级也是一个比较常见的选择。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!
微信适配夜间模式了吗?这就是例子,强者话语权,ios先天的系统优势就是一个市场的锚点,微信知道自己的命根子在哪,为硬件设备提供极致操作的工具,例如Metal,无可匹敌,再说ios系统核心的源代码,与高端服务器os unix一脉相承,又有进一步的嵌入式操作,核心api专业打磨,绝对不是开源系统能比的量级,说白了每个环节都是钱砸出来的,靠的都是工匠精神,核心源码是任何一个程序员的宝藏,不要认为玩过几个跨平台根本不考虑性能的js小技术就明白了一切,只要去过Google开发者大会的就知道,看看安卓程序员手里吃饭的家伙是啥,mac,顶上的叶子再多也要靠下面的根,乔布斯,一骑绝尘
去开发华为系统的APP,动作要快
转后端 Java PHP go py都学一波
我干过大概一年的iOS开发,后来又转回java了,说句实话,iOS对开发者确实友好,一切都很不错,开发工作也很愉快,但是后来工作不太好找,而且iOS开发的发展深度没有java深,java深入不仅仅是curd,还有架构、框架、微服务、分布式 等等。而且java到架构之后,薪资也比iOS要高很多,不过我不建议你学我,除非你有毅力学习java,因为我除了有iOS开发经验之外,还有五年的java经验,说转也就转了。
作为IT行业的从事多年的程序狗,我来解答下您的这个问题。
2015年到2017年可能是IOS最热的一段时间,大量的软件开发人员投入IOS的市场。现今随着苹果公司的销量不断受挫。IOS的市场也是不温不火。
IOS开发程序员,其实可以尝试这跳出这个生态舒适圈,软件这个行业是多向选择的,软件的开发思想、程序的设计思想都是大同小异的。对于一个精深IOS开发人员来说,对于别的语言多少都会掌握一些,这对于您跳出IOS的圈也是一大帮助。毕竟Java、Python现在是市场上的主流语言。
另一个方面就是很多资深程序员选择的,进入深层次领域的学习。走研发级的一些路线。研发级软件研发的职位生命周期长。工作压力会比程序员小很多,很适合大龄程序员的选择。
或者就是选择自己的一个主攻方向,做这个方向的专家,这也不失为一种选择。丰富自身的知识结构,向着全栈开发工程师不断的前进。
或者可以尝试这转行管理层,做一些技术经理、技术总监。当然任何一种选择都需要您结合自身的实际情况去抉择。谨慎考虑、然后在做选择。
希望回答对您有所帮助。
我本人从事多年互联网Java开发,感兴趣的朋友可以关注私聊,共同努力,共同进步。
谢谢!
我是8年iOS开发从业者,结合我自身情况以及我自己的职业规划,希望能够帮到你。
焦虑 今年已经三十岁了,对于iOS的现状和未来也时常感到焦虑,大龄程序员未来的出路在哪,我也会迷茫。
市场需求 移动开发需要iOS,安卓两端一起开发,耗费的时间成本是企业会考虑的,再加上html5、小程序、各种跨端方案的出现,市场对原生开发需求更少了。
案例 再分享一个之前做主管时我招聘C++开发的一个经历,杭州C++需求量不大,但是这位应聘者能力过硬,最终进了华为。
我们应该怎么做 上面的案例也印证了只要自身技术过硬,只要市场还有需求,过多的担心和焦虑是没有必要的,把大量的时间花在 探索 未来方向,不如沉下心来学习技术,努力提高自己,成为不可替代的人才。其实应对焦虑最好的方法是行动,目前市场更需要的是高端人才,只要有岗位需求,把自身能力提高上去之后,现在所担忧的问题都会迎刃而解。
希望我的回答对你有帮助,随时欢迎留言反馈。
flutter欢迎你
转其他语言,或者自己独立开发
我鼓捣flutter去了
相信各位读了之前的两篇文章,对pods的使用已经相当熟练了。不过在纷繁复杂的实际使用场景下,可能还是会遇到一些问题。本文就结合自己的实践经验,做一些快问快答,希望大家能多多补充交流。话不多说,那我们就即刻开始吧!
pod系列文章
Cocoapods,让iOS开发更简单(一):走近Cocoapods
Cocoapods,让iOS开发更简单(二):创建私有库
Cocoapods,让iOS开发更简单(三):实践经验汇总
一文带你快速分清静态库-动态库-Framework
一般推荐使用指定版本或范围版本号,以确保依赖的稳定性。
总结 :能用pod install解决问题的,就不要用pod update。因为pod update会把依赖库全部检查一遍,不仅慢有时候还会出现坑。
忽略Pods警告,有些第三方Pod集成进来会有一大堆警告信息,在Podfile中对应的target或分组下加上关键字inhibit_all_warnings!就可以把警告忽略。
作用:
在pods中用frameworks替代.a静态库。
场景:
swift项目pods默认开启(use_frameworks!),OC项目pods默认关闭(#use_frameworks!),同时需满足以下两点,
解析:
swift工程依赖了OC工程的话,需要use_modular_headers!
示例:
为某个 Pods 使用模块化标头,可以使用以下语法:
pod 'TestPodLib', :modular_headers = true
另外,当全局使用 use_modular_headers! 属性时,同时还可以使用以下方法从模块化标头中排除特定的Pod:
pod 'TestPodLib', :modular_headers = false
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
常用的方式调用pod中的素材是不生效的,因为默认是从mainBundle中读取的,如
打在pod中的素材已经不在mainBundle中而在对应组件下的bundle 里面,所以应该这么调用:
在用CocoaPods集成第三方库之后,默认情况下,使用类似#import XXX/YYY.h的方式引入第三方库的头文件。
pod search只会搜索本地缓存的库,如果想搜索到最新的第三方框架或者某个框架的最新版本,必须先使用pod repo update。
一般说来,刚毕业,活力四射,总是有一股子冲劲,心里也梦,想把不懂的东西都先弄明白,充实而忙碌。就算每天需要占用吃饭、睡觉的时间去学习与努力,也不会觉得累,总之时刻都会激情高昂的样子。
后来,工作两三年,有足够的能力应付自己的工作了,也没有之前那般拼命劲了。每天做的工作游刃有余,准时上班,准点下班。这个时候你要了解到有两种情况:
1、这个工作你已经胜任了,也证明了你的能力水平。
2、你的工作中出现瓶颈了,除了现有能够处理的工作,你没有一丝进展。面对这两种情况,你要思考是否是处在了舒适区。
尽管,你每天熟练的处理手头工作,日子过得也特别快,但是总会感觉着空虚感和焦虑感相互交叠。所以,我相信你此刻需要跳出舒适区了。
每个人都想要成功,但也很容易沉溺于舒适的生活里。一份安稳的工作,朝九晚五,余下时间可以和朋友与家人一起吃喝玩乐。这样的日子无一不是大家所喜欢并期待的。但看到身边很多人都成功了,内心又有不甘,幻想着有朝一日能够和他们一样,出人头地,但你真的能够有勇气跳出舒适区吗?
首先,要重新去了解自己。了解自己就意味着什么呢?意味着接受。接受自己并不完美的一面。
1、 我并不完美,除了基础技术能力之外,其他一无所长。
2、 我并不成功,除了在现所处的公司,能应对一些基础问题之外,我的能力并没有优势。
3、 我真正想要的东西,似乎离自己越来越远。
4、 很久没有努力了,没有那种奋斗的精神。
5、 不知道从何开始,害怕现有的东西都会失去了。
当你习惯了很多东西之后,你明明在泥沼里,却以为在任天堂一般。作为一枚程序员还想着安逸,这就是你的不对了。互联网技术日新月异,程序员并不是只掌握一项技术就能够高枕无忧了。想要改变现状,可以从以下几个方面了解:
如果,没有曾经那种激情了,如果,不知道从何开始,那就先将自己处于危险之中,险中求生,对安逸的人来说是很大的挑战。
第一步 ,斩断后路,不管现在你多安逸,你都要思考接下来该不该继续安逸下来,跳出这个区域,你要思考接下来将遇到最大的危险是什么。比如说,现在的公司只能做手头现有的工作,没有办法提升能力,那么是不是应该去人才市场验证自己的能力和其他发展机会呢?倘若公司可以变通,那又应该怎样去做呢?可以直接跨入第二步。
第二步 ,行动如风,不管你是离职重新估量自己的能力,还是在现任岗位上进行提升,你都要明白自己现在有哪些问题,并且进行分析与解决。你可以进行职业规划和能力评估。又该怎样规划?首先,置于危险中并不是忽视后果,而是通过估量这个事情的危险系数有多大,再进行抉择,其次就是职业规划,你几年后,乃至这一辈子,你的职业规划是否适合,是否能够执行落地,你接下来要做的事情是否能够通过自身努力与坚持就能够实现,实现不了,将怎么办?这些都需要思考。
第三步 ,计划落地。不管怎样,你要面对的事情都不外乎是提升自己的能力。怎样实施落地,可以做年计划,半年计划,周计划、日计划等等,这些需要坚持下去,还要进行分析,并调整方向,而不是做了就放任不管,那跟在舒适区并没有什么特别之处,你要做的就是通过量变行动达到质变的效果。
我的一个iOS技术交流群:624212887,里面都是iOS开发,全栈发展,欢迎入驻交流!
——点击: 加入
别人都说35岁是程序员工作的终点。其实,也可以算是程序员的另一段人生的开始。以上几点问题,在这个年龄之前都要认真去思考解决。做好技术积累,构建个人核心竞争力是程序员最主要的能力,接下来就是个人软实力的塑造,有人说软实力是虚的,但事实证明“成大事者不拘专业,有软实力笑傲江湖!”
那么该怎样做呢?
技术能力 :是程序员不能丢的东西,你只有熟练操作技术能力,才能够深入解决技术层面需要面临的问题,以及该如何去解决。怎样提升技术能力,方式有很多,无非就是能够静下来,坐下去。只要你能在下班之后,认真多加一两个小时的班,将学习的知识融入实践中去,技术能力就能够提升上去。
软实力提升 :可以从思维能力、沟通能力、表达能力、文化修养、学习能力、团队协作能力出发,这些方面都会在生活和工作中体现出来,可以阅读和学习相关知识,并通过刻意练习来提升相关能力。最主要的是,这些事情都有自己的线,而且时刻都要拽紧这根线,你才不会成为断线风筝,任意漂流。
古人云:“活到老,学到老。”你放弃学习,就等于慢性自杀。所以在没有很大进展的时刻,不如跳出来,看看世界。这个世界能给你带来哪些好处呢?
如果你提升了自己的技术能力,你至少可以获得更多待遇更好的offer。那么你所面临的层次就更上一层楼。技术没有封顶,只有你触不到的境界,要想到高境界除了自身努力和引导人之外,还需要环境的塑造。软实力也是一样,你遇到的人和问题深度也不一样,自然解决的方式和效果也是不一样。
我的iOS技术交流群:624212887,欢迎入驻交流,!——点击: 加入
生活不可能是一帆风顺的,你怎么对它,它就一定会反馈给你。你努力奋斗所积累的能力,都会化作RMB回馈给你。比如说你的技术超厉害了,那么哪个HR会放过你呢?如果你的软实力比如说思维、沟通等能力能让你面前的问题全都解决掉,那又有哪个公司的老板不会拿高薪酬留住你呢?
基础
一定的编程经验
这里说的编程经验是至少熟练一门编程语言,对 OOP 有一定的了解,最好熟悉一些基本的设计模式。遇到过的好多 iOS 开发,大多是从别的语言转过来的,所以有一定的编程基础,学起来会更容易 get the point.
如果是第一次接触编程,当然也是没问题的,只是要做好心理准备,可能会比想象的难。
英语
发现不少开发对于英语似乎有点接受不能,通常都是中文优先,除非迫不得已,才硬着头皮看看 StackOverflow,英文文章,文档等。忘了是谁说过「难走的路越走越好走」,通常如此。其实只要稍微 push 一下自己,那些技术文章啃下来应该不会有太大的问题,有过几次成功的体验后,这种恐惧感就会减少很多。优质的文章、视频、书籍,多是英文的,不迈过这个 坎,将来要么成为瓶颈,要么花更大的成本去填补。
入门
书籍
要学习 iOS 开发,自然要先学 Objective-C (当然现在也可以直接上 Swift,不过如果多人协作的话,OC目前还是主流),因为 OC 是 C 语言的超集,所以了解 C 语言对于学习 OC 肯定会有帮助,不过就算不了解,直接学 OC 也没太大问题。
这里推荐 BNR (Big Nerd Ranch) 的这本 Objective-C Programming The Big Nerd Ranch Guide,讲解地比较细致,能帮助你更好的理解 OC,更重要的是教你遇到问题时,如何去解决问题,以及这个问题对应的一些知识点,如何使用文档等等。
来到一个新的世界,肯定会对这个世界充满好奇,想订阅一大堆博客,买一堆书,看各种教程和视频,然后就变得浮躁,不知该从哪下手,这会导致拖延症。 我渴了,给我倒一杯水,这个很直接,马上就可以做,但如果是给我买一瓶饮料,而自己对那些饮料又不怎么熟悉时,就纠结了,不如刷会微博,看看朋友圈,玩个小游戏先。
所以一本好的入门教材很重要,要契合自己当前的水平,且常常会有收获,这种成就感会激励着你继续学下去。
在看书的过程中,往往会有这样的经历:书中提到某个人、观点、知识点、书、文章,然后就顺着它提到的这些东西出去了,可能某个知识点又牵扯到另一些内容,然后就这样越走越远。想起了一个故事——
三只猎狗追一只土拔鼠,土拔鼠逃跑时钻进了一个树洞。这个树洞只有一个出口,不一会儿,忽然从树洞里跑出一只兔子。兔子飞快地向前跑,并爬上另一棵大树。兔子因为慌乱在树上没站稳,掉了下来,砸晕了正仰头看的三只猎狗,最后,兔子终于逃脱。
对于这个故事可以从不同的角度去解读,我更愿意以初心去解读。兔子为什么会爬树?为什么能砸晕三只猎狗?这不是重点,重点是,之前追赶的土拨鼠哪去了?看书时难免会有延伸阅读,这个深度我觉得不宜超过 2 层,不然很容易就回不来了。
还有就是如果有可能,最好每天都看点,这其实是很难的,因为总是会有优先级更高的事,或者之前的某些习惯在干扰。一旦断了几天,就不想再拿起来了。
还有,苹果官方的 Start Developing iOS Apps Today 也是很不错的入门材料。
视频
推荐斯坦福老头子(Paul Hegarty)的 Developing iOS 7 Apps for iPhone and iPad ,当初也是看的这个(那时还是更老的版本),Paul 是资深的 Mac/iOS 开发(前苹果员工?),很多知识点讲得很到位,学生们的提问也大都在点上,同时配有Demo,总之听下来会对 iOS 开发有比较全面的了解。
同时推荐一本小册子:objc-zen-book,花不长时间就能看完,里面是一些 Best Practices,对于编写优质代码会很有帮助。
笔记
这是一个持久的过程,任何阶段都适用。以前也没太在意这个,觉得概念性的东西,脑子过一遍,就大概知道了,然后就去啃其他的东西了,现在看来,如果有记笔记的话,会更有助于消化概念、知识点,也可以记录自己的思考过程。达芬奇就记录了10000多页的笔记。
记笔记可以加深对知识点的理解,而成为编程巨星的唯一秘诀就是:对所做的事情理解地越深,就会做得越好。同时如果遵循遗忘曲线去复习的话,效果更佳。对知识点了解地足够透彻后,Debug 时才更有可能知道问题出在哪,解决问题也更容易有思路。
笔记不仅可以记知识点,也可以记录调试过程,比如这篇笔记,有一种调试方法:小黄鸭调试法
许多程序员都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。
生活中我们可能不会真的这么去做,这时抽离出另一个自己,记录下跟ta的对话,也是个发现问题的好方法。
练习
这也是一个持续的过程,知道了些概念或原理后,总是会想着去验证下是不是这样,无论结果是否如自己预期,实践的过程会降低对语言的陌生感,慢慢地培养一种驾驭这门语言的自信,如果出了错,正好可以重新梳理一下。
目标
如果静下心来看完了 BNR 的这本书,以及斯坦福的 iOS 开发视频,那么对 OC 应该比较了解了,一些常用的 UIKit 用起来也没什么问题了,比如 UIViewController / UIView / UIScrollView / UIImageView / UITableView。也熟悉一些概念,如 KVO / MVC / Delegate / DataSource。
这个阶段下来,应该会有:哦,iOS 开发也就这样嘛,多翻翻文档,熟悉 Cocoa Touch 的一些 Class,差不多也能做出一个简单的 App 了。
进阶
入门之后,接下来可以折腾的东西还会有不少。
书籍
Effective Objective-C 2.0,里面提到了 52 种提高 iOS App 质量的途径。涉及了 API 设计、protocols / category 的使用、写出更模块化的代码等,读下来应该会有不少收获。
iOS Programming: The Big Nerd Ranch Guide (4th Edition),又是一本 BNR 的书,这本书的特点是通过 Demo 来引出知识点,然后提一些问题,并且会细说解题思路。看书的过程中,对于元学习能力的提升也会有一定帮助。
--- update ---
发现巧哥的 iOS开发进阶 已经可以在京东买到了,虽然没有细看,但巧哥出品质量肯定有保障。
其他资源
进入这个阶段后,可以去探索更大的世界了,现在的资源已经很丰富了,但还是要遵循「少而精」的原则。以下是我觉得挺不错的资源
iOS Dev Weekly 每周一期,内容多为这一星期里值得关注的Github项目、文章、工具等。
iOS 移动开发周报 这是唐巧大大整理的每周不错的 iOS 开发相关的内容,多为中文。
RayWenderlich 很多详细又全面的教程,不容错过。
iOS Dev Slack 国内不少 iOS 开发(包括大大们)都在这里,不过现在好像不怎么能拿到邀请了。
中文 iOS/Mac 开发博客列表,打开工具订阅吧。
还有,如果可能的话,多去分享自己学到的东西,教是最好的学,我试过几次,效果真的很不错。
目标
这个阶段下来,对于常用的设计模式、内存管理、Blocks 的使用、图像操作、网络请求和管理、多线程应该比较熟悉了。对于 CALayer、Animation、UIScrollView、UITableView、UICollectionView、 ViewController Container 则非常熟悉,对「非常熟悉」的定义是:不打开 Xcode,脑子里就能把相应的知识点复述出来 80% ,比如这个类有哪些方法,Delegate / DataSource 有哪些方法,怎么使用,如果要实现某个效果,应该怎么做(好吧, UICollectionView 除外)。
高级
其实高级、进阶、入门并没有严格的界限,在入门阶段也可以探究高级阶段的一些东西。我觉得支撑我们不断探索和前进的动力不是兴趣,而是永不满足的好奇心,和对优雅代码的追求。
If your standards are low, you're going to stop pretty early on in the process.
BNR 的这篇 Leveling Up 已经讲得很好了,也更加细致。
书籍
iOS 7 Programming Pushing the Limits 这本书对 iOS 7 的一些特性会讲解地比较深入,当然也不仅仅是 iOS 7。只叹 iOS 更新实在太快,书籍往往跟不上,一本好书往往需要很长时间来撰写,等书可以出版了,iOS 又出新版本了。
源码
看优秀的源码,可以学到很多东西,使用过程中遇到问题也更容易解决。这些是我觉得值得细看的源码:AFNetworking(NSOperation, HTTP, Block), SDWebImage(Image Handle, Cache, NSOperation, Block),SVPullToRefresh(UIScrollView, State Handle), JSONModel(runtime)
如果有兴趣,也可以翻翻 CoreFoundation / OC runtime 的源码。
资源
oleb
NSHipster
objc.io || objcio.cn
WWDC 视频
工具
chisel Facebook 出品的 LLDB 助手,用于调试很方便
Reveal 每当好奇某个 App 的实现时,都会打开它一窥究竟,用于调试自己的 App 也很方便
Aspects steipete 大大出品的一款方便使用 method swizzling 的工具,可以在运行时动态添加代码到某个方法
class-dump 从 Mach-O 文件生成 OC 头文件,有时想看看某个 App 大概是如何组织的会比较方便
Hopper 可以对二进制文件进行反编译,甚至可以生成伪代码!有时想看看 UIViewController 里某个方法大概是怎么实现的,就可以用它。
Instruments 这个内置的工具对于发现 App 的各种问题很有帮助,如内存占用、泄露,渲染问题等。
目标
这个阶段,对于底层的实现会有更深入的了解,各种 Core 开头的 Framework 至少可以说出个大概,工具也能熟练使用,「正经的代码」写过数万行,可能天天在翻 Dash。如果别人让你实现某个功能,能在较短的时间内给出不错的实现方案,并且足够细致,甚至精细到如何使用 Core Graphic 去画某个图像。
其他
我觉得无论学习什么,「速成」的心态是最要不得的,这只会让自己变得浮躁,一知半解,整个过程也很难让自己的元学习能力得到提升。慢慢来,攻占一个城后,再去打下一个,这时心态也会平和许多。