2019独角兽企业重金招聘Python工程师标准>>>

英文原文:Things I wish I had known before starting iOS development—Part 1

设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候,我们的app也没几天就要上线了。这个界面模仿了Evernote iOS app的风格。

我以迅雷不及掩耳盗铃之势开始在Xcode上编程,用了page view controller和scroll view。在Stack Overflow和Google的帮助下,我用了2天把它完成了。当我把产品给一个同样搞iOS开发的朋友看时,他跟我说,如果我用了这个开源项目的话,一个小时就可以搞定一切。

过去这一年我经历了不少类似的事情,这些事情让我成长,让我能够成为一个更好的iOS开发工程师。我想跟大家分享一下我的经验,希望你们可以不再犯我这些错误,一路平坦走向成功。

重视基础

刚开始学iOS开发的时候,我直接去学习了斯坦福大学的这门课程,非常有用。然而,虽然我从课程中学到了很多,但它并没有教给我多少iOS开发语言的基础知识——当时的iOS开发语言主要是Objective-C。开始写自己的app以后,我发现自己在基础知识方面欠缺很多,这导致我老是弄出来一些bug。

如果你在面向对象编程的语言方面没啥经验的话,我建议你在投身进行iOS开发之前先读一本这方面的经典书籍。我最喜欢的两本是Big Nerd Ranch Guide for Objective-C和Swift的The Apple's Guide。

没错,Ray Wenderlich上的教程和Team Treehouse上的视频课程能教给你很多,但缺少基础知识的程序员就像无源之水、无本之木,总是长久不了的。

良师益友Github

我对这个iOS开源社区绝对是真爱。Github上面有无数的优质项目,如AFNetworking, Restkit、JSQMessages,甚是碉堡。你必须学会在这个社区里乘前人栽树之凉。

遇到问题时,先别一根筋急着苦思冥想或创建自己的库,不如先去GitHub或Google找一下有没有相似问题的解决方法。很有可能某个开发者已经写好了一个符合你需求的开源项目。

通过Facebook Groups或Slack chat来开始社区之旅吧!他们很乐意回答你的一切问题。你可以浏览那些好的开源项目,看看大牛们是如何组织代码的,自己也学着点。

这里是GitHub上一些最优质的iOS资源。

vsouza/awesome-ios:awesome-ios——精选的优质iOS生态系统,包括Objective-C和Swift项目。

matteocrippa/awesome-swift:awesome-swift——收集了很多优质的swift资源。你也可以来贡献自己的力量!

cjwirth/awesome-ios-ui:awesome-ios-ui——优质iOS UI/UX库精选。

如果你想找一些iOS的最佳实践以供自己模仿学习,那请看下面这些。

futurice/ios-good-practices:ios-good-practices——为iOS开发者提供灵感,作者是Futurice的开发者们。

了解你的工具

多数iOS开发者将Xcode作为开发的首选工具。Xcode有很多强大的特性,如Storyboards、Auto Layout,如果学会用这些的话,相信你的开发效率肯定能上一个台阶。出于某些限制,很多开发者会尽力避免使用Storyboards,但我个人认为,Storyboards是快速布局的有力工具。

学习使用Xcode中的快捷键。虽然看上去使用快捷键没节省几秒钟,但“不积小流,无以成江海“,久而久之省下的时间就多了。以上这些都是我亲测有效的手段,它们在提高开发效率方面给了我很大帮助。

  1. 使用Cocoapods来进行依赖管理。你的团队会因此轻松很多。

  2. 在项目早期就学会使用持续整合(continuos integration),这样就可以避免未来可能出现的冗余工作。

  3. 使用Testflight来分发测试版本。在被苹果收购之后,Testflight变得更加简单易用了,每个人都可以通过它来使用iTunes账号进行测试版本的分发。

  4. 在app中整合Crashlytics,这样当app崩溃的时候你就可以获取Crash报告了。

  5. 如果你不想自己弄后端服务器的话,Parse为我们提供了很好的服务。

读一些优质博客和资讯

前文已经介绍了一些很棒的iOS开源社区。很多优质的博客是由经验丰富的iOS开发者撰写的,每周都会有一些精彩的内容呈现。我最喜欢的一些包括:

Cocoa with Love:在本博客中,我将专注于使用和管理用户界面中字符串的最佳实践。这是一个相当...

可能是最好的iOS博客。作者是Matt Galaghar。Matt做事情的方式是大师级的。

iOS Dev Weekly:订阅本博客,轻松获得每周最棒的iOS开发网页精选。由Dave Verwer精选并发布...

严格来说这不算个博客,但它每周都有超级超级棒的内容更新。作者是Dave Verwer。

NSHipster:Playgrounds并不是Swift语言本身的特性,它们其实是很棒的展示……

NSHipster对Objective-C和Cocoa进行拾遗的杂志。它由Mattt Thompson每周更新。

Ray wenderlich:高质量的编程教程:iOS、Android、Mac,还有更多!

Ray Wenderlich的博客(对初学者超有用)

Custom Controls for iOS and OS X - Cocoa Controls:暂无描述

Peter Steinberger:苹果在Xcode 6中增加了对NS_DESIGNATED_INITIALIZER 标志的支持,同时也将其添加到了各种各样的框架中……

Matt Gemmell:基于我的写作项目进行简要更新。它或许会引起一些人的兴趣……

Natasha The Robot:仅仅是又一个WordPress站点

在这些博客中挑选干货,认真阅读,相信你会变成一个更好的iOS开发者。

设计也能变轻松

很多开发者对于iOS的设计方面谈虎色变。我们总是对设计敬而远之,一股脑儿都扔给设计师去做。但其实,只要稍稍努力,你也可以学会设计自己的app。

现在,设计师和开发者之间的界限日益模糊,因为好多成功的iOS独立开发者包揽了所有app设计、开发和营销工作。我将在下一部分谈到营销方面的事。如果你想设计自己的iOS app的话,不妨学一下Sketch这个工具。Sketch专为应用设计和网页设计而生,简单易上手。

Bohemian Coding - Sketch 3Sketch是简单易用的轻量级软件,它强大、灵活而快速。最后……

你可以在网上找到大量的Sketch资源和插件,它们能让你有趣而简单地工作。一旦完成了设计工作,你可以立刻用这个神器将它们整合在一起。

Free mobile & web prototyping for designers - Marvel将草图和设计转化为可交互的Web、iPhone、iPad、Android和Apple Watch原型和模板……

下一部分,我将谈一谈在开发自己的app时的必要方法,并且讲一些iOS应用的营销技巧。

CocoaChina原创翻译,转载请注明!

转载于:https://my.oschina.net/are1OfBlog/blog/465885

那些在学习iOS开发前就应该知道的事(part 1)相关推荐

  1. 那些在学习iOS开发前就应该知道的事

    原文请看:http://www.cocoachina.com/ios/20150608/12052.html 那些在学习iOS开发前就应该知道的事 2015-06-08 09:14 编辑:suilin ...

  2. 学习iOS开发前要知道的事儿

    英文原文:Things I wish I had known before starting iOS development-Part 1 设计师设计出来了一个不错的引导界面,然而当我看到设计稿的时候 ...

  3. [iOS]关于零基础学习iOS开发的学习方法总结

    关于零基础学习iOS开发的学习方法总结 最近很多零基础来参加蓝鸥培训的学生经常会问到一些学习方法的问题,就如下我自己见过的好的学习方法一起讨论一下. 蓝鸥iOS开发技术的学习路线图 程序员的主要工作是 ...

  4. [翻译] 学习iOS开发的建议:如何从菜鸟到专家

    [文章原地址] http://mobile.tutsplus.com/tutorials/iphone/ios-quick-tip-from-novice-to-expert/ 翻译有误之处请勿见笑, ...

  5. 学习IOS 开发需要什么?

    学习IOS 开发需要什么? IOS是网络配置系统,是一个网际互联优化的复杂操作系统,他是一个硬件分离的软件体系机构,IOS提供的体系结构能使机构灵活地应用变化和经济有效地进行扩展以满足新的需求.在新的 ...

  6. 零基础如何学习 iOS 开发?

    我创建了一个 CS193P - SwiftUI 和 iOS 开发的学习群组,有兴趣可以加入,群内学习者以北美为主,因此聊天请使用英语,谢谢.加入 Slack 群组 正文: 建议从 SwiftUI 开始 ...

  7. 零基础学习 iOS 开发

    作者:匿名用户 链接:https://www.zhihu.com/question/22000647/answer/114700565 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  8. 随笔分类 - 零基础学习iOS开发

    随笔分类 - 零基础学习iOS开发 不管你是否涉足过IT领域,只要你对iOS开发感兴趣,都可以阅读此专题. [零基础学习iOS开发][02-C语言]11-函数的声明和定义 摘要: 在上一讲中,简单介绍 ...

  9. 学习IOS开发第一天——必备工具书和开发工具

    前言:今天是准备系统学习IOS开发的第一天,特地记录一下,因为最近要忙的东西实在太多了,白天几乎没时间看,当然,我现在从事的是.net开发,也不会允许我去看,再者背两台电脑上班也忒累了,所以就只好利用 ...

最新文章

  1. 碉堡的小程序:用 Python 制作演示迷宫算法的 gif 动画
  2. idea创建mybatis的config.xml和mapper.xml方法
  3. 安卓中关于dialog.builder问题
  4. 演练:在 Windows 窗体中承载 Windows Presentation Foundation 复合控件 【转载】
  5. linux用户类型分类,信息安全技术题库:SELinux安全上下文主要包括用户、角色、类型、层次和分类字段。( )...
  6. 设计牛人——设计入门答疑番外篇有感
  7. 如何确定线程池核心数的最佳值?
  8. 浅谈商品推荐:如何猜中用户的心思?
  9. ueditor-图片上传是报错
  10. 查询和追踪快递单的流向有这么难吗?用VFP其实太简单
  11. 51单片机之232串口实现-任务要求Fosc为6MHz,定时器T1为工作模式2
  12. 从《象形拳法真诠》看王芗斋与薛颠
  13. 【windows】在控制面板卸载软件的时候,出现2502,2503的问题
  14. 乐学成语——数据库创建(导入、打开)
  15. Python基础详解(十四):2022-Pycharm最新版社区版安装教程
  16. 狗子课堂 二 虚拟机配置
  17. Manjaro + Windows 双系统安装指南
  18. 如何构建无服务器 WebSockets 平台
  19. apt-get下载、安装的软件在哪里
  20. 档案管理在计算机中的应用,计算机信息技术在档案管理中的应用论文原稿

热门文章

  1. YourEclipse—不只是Eclipse开发者社区
  2. 背包问题概述(Lintcode- 562.Backpack IV问题解决)
  3. Connect模块解析 转载
  4. Flutter调试技巧总结——高效开发的秘密
  5. php使用memcache存储session
  6. 熟悉常用的HDFS操作
  7. mysql利用CPU多核
  8. linux+Oracle集群课程全面升级
  9. 优秀的缓存工具Memcached
  10. 2006年猪的述职报告