国内交流的地方太少(我指的是Mac OSX那一块,iOS的倒是一大堆),有的时候可能问了问题得不到满意的解决方案。 还有就是有时候想搜一个东西,不知道该键入什么关键词~
对于我来说,最大的问题在于啃文档太慢,当然和自己的英文水平有关系,也和文档太多(当然是好事)有关系。
官方文档感觉就像一棵大树,一个树杈都引伸出几个树杈,如此反复。新手读来感觉就像听印度人说英语,觉得明白了一点,较真起来又感觉什么也没懂,但是高手可能会有“铁壶贯顶”的感觉,很打击新手的自信。再多说一句,就是官方给的示例,Xcode打开一看,我的妈,左边长长一溜,直接崩溃了。
看一些书和视频倒是比较直接明了,但是示例往往比较简单,照着做没问题,但想要自己弄点东西出来,要不根本无从下手,要么东查西搜很久才能搞定,也就是说没有做到很好的“授人以渔”。
当然,可能也是本人悟性太低。见笑!
如果不做界面部分只做中层业务逻辑和底层(通讯、存储等),对于一个C/C++经验者来说Obj-C实在很好学,即使不用ARC也轻易掌握,一个月足够熟悉了。
最大问题还是做界面,一开始做界面学习成本直线提高。很少文章会系统的讲解界面上手要逐步学习的东西,当然是个人都明白一开始就会用View/ViewController,如果是功能性主导的App,对界面要求不高的话,基本就足以胜任90%开发需求了。麻烦就在,如果需要一些稍微复杂的效果,或者需要根据数据动态生成界面内容(例如像Tiny的杂志界面),这样就复杂了,一大堆东西等着学,而且你还未必知道你该学什么,只能查到A看A,又通过A涉及到B、C,通过B、C可能又涉及DEFGHI。。。。。。越看得多你越发现TMD原来还有那么无穷无尽的资料要看。看官方文档是不明白的,你得看2-3个例子代码了解某个技术怎么用的(例如我搞明白Core Animation里的Transform就花了不少时间)。官方还有一大堆WWDC的video需要看,等你刚学到一些东西的时候,TMD新版本新SDK又来了。。。
虽然我很在意界面效果和体验,但具体做开发,我个人还是觉得做界面开发是件挺头疼的事,无论是iOS、Android还是Web(以前的MFC、QT、MiniGUI那些就更不用说了,和这些“现代”图形框架比起来就是北京周口店的猿人)。
同顶11楼,但是接触到未知领域不清楚该学什么这个是普遍问题吧,我觉得以前很多教科书上的科学家都不会只有一个数学家或者一个物理学家这样的头衔,就是这么来的。而我个人遇到的最大问题是英语还有数学,英语是阅读官方文档以及墙外交流的必要条件,我目前还是靠硬着头皮看而已,数学我觉得应该也很重要,UI的动画,要效果好,特别~各种角度各种计算,我觉得也是必须的。虽然才投入工作不到2个月,但已经发现自己身上全是缺陷了,大家互勉之~加油
楼上你是说这个?http://latest.docs.nimbuskit.info/NimbusCSS.html,我看了,它的目的是用CSS来给UIView之类的定位,有点意思。
我们比这个复杂,我们就是实现了一个浏览器的工作量,:)
我们做的比较像 https://github.com/johnezang/NSAttributedString-Additions-for-HTML,但是比它要复杂多了。
@tinyfool 重写一个浏览器,是指还是基于浏览器内核(例如webkit)来做二次处理,还是真的直接从HTML/CSS解释器开始写?如果是后者我觉得相当大的工作量啊!而且我总觉得HTML/CSS针对的需求太广泛了,处理逻辑也太复杂,所以造成任何的WebApp都比NativeApp有很大的性能弱势。
如果是自己直接从解释器开始写,是直接支持通用型HTML/CSS标准,还是只做HTML/CSS的子集支持,或者基于HTML/CSS以及杂志排版的一些特征需求(如支持视频、幻灯片效果、基于若干指定模式的图文混排等等)进行特殊封装支持(就是将HTML/CSS一些通用规范再封装定义为特殊的规范,解释器不需要直接解释通用HTML/CSS标准)?泰尼杂志是怎么做的呢?
问得那么细,主要是我现在的项目里其实有需要到一定的排版技术,但需求还远没有泰尼杂志排版那么复杂。我考虑到如果直接用Web模式WebView的效率相当得低,而且还不容易自己进行优化,所以我采取自定义一套简化版协议的方式,把一些排版需要的常见功能/控件(视频插入、幻灯片、按钮、面板、图集等等)直接在协议里针对性定义出封装的功能来,所以不需要非常复杂的解释器(但其实要满足一定的自定义性实现起来也不简单了,不过相对HTML/CSS来说还是简单很多),而且还可以针对每种功能/控件进行单独的逐步优化。缺点就是可支持的自定义性远比HTML/CSS低很多。我的目的主要还是不希望采用过于通用的标准,从而引入可控性和可优化空间很低的问题。
有些原理性的东西很难找答案 比如说证书的问题,可能装几个证书发布什么的都没问题了,但是不明白怎么工作的,明白公钥私钥是什么,明白数字证书是什么,但是在iOS设备上是怎么验证的? 为什么加了个provision file就能真机测试了? 从App Store下载的又不需要provision file了, 这些问题如果明白的人解释可能不是很难,但是搜来搜去找不到答案。 又比如前段时间 objc.io 发布的关于Views的文章,讲原理性的东西,但是在官方文档里面是找不到的。 市面上的书基本上都是初阶,根本没什么用,很难找到稍微深入进阶的iOS开发书籍。
想再往其他方向拓展好吃力,比如IOS下不少做音频视频或者通讯什么的,很多编码解码,有的还更贴底层,C、C++没有太多经验~ 老看这些控件UI层什么的意思不大~