Ext.: http://www.cocoachina.com/ios/20150608/12052.html
English Original: Things I wish I had known before starting IOS Development-part 1
The designer came up with a nice boot interface, but when I saw the design, our app didn't have a few days to go online. This interface mimics the style of the Evernote IOS app.
I started programming on Xcode with the lightning-ring, using Page view controller and scroll view. With the help of stack overflow and Google, it took me 2 days to finish it. When I gave the product to a friend who was also developing iOS, he told me that if I used this open source project, I would be able to do everything in one hours.
I've been through a lot of things like this over the past year, and these things have made me grow up to be a better iOS development engineer. I would like to share my experience with you, I hope you can not repeat my mistakes, all the way flat to success.
Focus on the Basics
When I first started learning iOS, I went straight to the Stanford University course, which was very useful. However, although I learned a lot from the course, it didn't teach me the basics of iOS development language-The iOS development language was mostly objective-c. After I started writing my own app, I found that I lacked a lot of basic knowledge, which led me to always get some bugs.
If you have no experience with object-oriented programming language, I suggest you read a classic book on this before you dive into iOS development. My two favorites are big Nerd Ranch Guide for objective-c and Swift's The Apple's Guide.
Yes, the tutorials on Ray Wenderlich and the video lessons on Team Treehouse can teach you a lot, but programmers who lack the basics are like water without, tree without roots, and never long.
Mentor GitHub
I am absolutely true to this iOS open source community. There are countless high-quality projects on GitHub, such as afnetworking, Restkit, Jsqmessages, and the bunker. You must learn to take walnuts in this community.
If you have a problem, don't worry about it or create your own library, go to GitHub or Google to find out if there is a similar problem. It's possible that a developer has written an open source project that fits your needs.
Start a community trip with Facebook groups or slack chat! They are happy to answer all your questions. You can browse through the good open source projects and see how Daniel organizes the code, and learns a bit about it.
Here are some of the top quality iOS resources on GitHub.
Vsouza/awesome-ios:awesome-ios--'s Selected premium iOS ecosystem, including objective-c and swift projects.
Matteocrippa/awesome-swift:awesome-swift--collects a lot of high-quality swift resources. You can also contribute to your own strength!
cjwirth/awesome-ios-ui:awesome-ios-ui--premium iOS Ui/ux library featured.
If you're looking for some of the best practices for iOS to emulate your own learning, see below.
futurice/ios-good-practices:ios-good-practices--is the inspiration for iOS developers, who are futurice developers.
Get to know your tools
Most iOS developers use Xcode as the tool of choice for development. Xcode has a lot of powerful features, such as storyboards, Auto Layout, if you learn to use these words, I believe that your development efficiency can certainly be a step. Due to some limitations, many developers try to avoid using storyboards, but I personally think that storyboards is a powerful tool for quick layout.
Learn to use shortcut keys in Xcode. Although it seems that the use of shortcut keys did not save a few seconds, but "no small stream, no to become Jianghai", over time to save more. These are my pro-test effective means, they have increased the efficiency of development has given me a lot of help.
Use Cocoapods for dependency management. Your team will be so much easier.
Learn to use continuous integration (CONTINUOS integration) early in the project so that you can avoid future redundancy work.
Use TestFlight to distribute the test version. After being acquired by Apple, TestFlight became more user-friendly, and everyone could use it to distribute beta versions with itunes accounts.
Integrate Crashlytics in the app so you can get crash reports when the app crashes.
If you don't want to get the backend server yourself, parse provides a good service for us.
Read some quality blogs and information
The previous article has introduced some great iOS open source communities. Many quality blogs are written by experienced iOS developers, and there are some great content to be presented every week. Some of my favorites include:
Cocoa with love: In this blog, I will focus on best practices for using and managing strings in the user interface. This is a fairly ...
Probably the best iOS blog. The author is Matt Galaghar. Matt's Way of doing things is master-level.
iOS dev Weekly: subscribe to this blog to easily get the best iOS development pages of the week. Featured by Dave Verwer and released ...
Strictly speaking, this is not a blog, but it has super awesome content updates every week. The author is Dave Verwer.
Nshipster: Playgrounds is not a feature of the swift language itself, they are really a great showcase ...
Nshipster Objective-c and Cocoa the magazine of supplements. It is updated weekly by Mattt Thompson.
Ray Wenderlich: High-quality programming Tutorials: IOS, Android, Mac, and more!
Ray Wenderlich's blog (Super Useful for beginners)
Custom controls for IOS and OS X-cocoa Controls: No description
Peter Steinberger: Apple added support for the Ns_designated_initializer logo in Xcode 6, adding it to a variety of frameworks ...
Matt Gemmell: A brief update based on my writing project. It may arouse the interest of some people ...
Natasha the Robot: just another WordPress site
Choose the dry foods in these blogs and read them carefully, believing you will become a better iOS developer.
Design can also be relaxed
Many developers are tanhusebian about the design aspects of iOS. We always keep the design at arm's length, peremptorily to designers. But in fact, just a little effort, you can also learn to design their own apps.
Now, the boundaries between designers and developers are blurring, as many successful iOS independent developers are doing all the app design, development, and marketing work. I'll talk about marketing in the next section. If you want to design your own iOS app, you might as well learn the sketch tool. Sketch is designed for application design and web design, simple and easy to use.
Bohemian Coding-sketch 3 : Sketch is a lightweight, easy-to-use software that is powerful, flexible and fast. At last......
You can find a lot of sketch resources and plugins on the internet, which can make you work fun and simple. Once you have completed the design work, you can use this artifact to integrate them immediately.
Free Mobile & Web prototyping for Designers-marvel : Convert sketches and designs to interactive web, IPhone, IPad, Android, and Apple Watch prototypes and templates ...
In the next section, I'll talk about the necessary ways to develop your app, and talk about some of the marketing tips for iOS apps.
What you should know before learning about iOS development (Part 1)