Вы находитесь на странице: 1из 6

https://www.reddit.

com/r/iOSProgramming/comments/63d4yj/i_have_6_months_om_me_to_learn_io
s_development/

QUESTION

Long story short, I have studied at a university for a year before I got broke and
stopped. I have experience with programming and object oriented programming in general, I
know what APIs are and how to call them, and I know why we create separate classes for things
and how things work in general in OOP (Inheritance, objects, classes.. etc but not an advanced
programmer) Just trying to say that I know my way around but really haven't touched iOS
development in 3 years (Since Swift came out)
I have 6 months with 5 hours per day dedicated to iOS programming. I got a good Mac
running and just need a sense of direction. The first few tips that I got were to Watch the
WWDC videos first then head to Lynda and learn as much as possible.
Any other tips? Thank you.

ANSWERS

[–]josh-fuggle 35 points 1 year ago 


I would watch the Stanford videos. They contain a lot of valuable theoretical information. You
will get a deeper understanding of iOS development by watching this series rather than most of
the other material that you will find online.
[–][deleted] 30 points 1 year ago 
Two words. Ray. Wenderlich.
I've been a long term web application dev and I'm diving in to iOS development and this guy's
tutorials have been a major help. Even about to pull the trigger on his premium video series.
The biggest thing for me so far, is also knowing what to google to find better information.
Slowly learning what things are called for example UITableView, instead of "list of rows".
[–]15458434Objective-C / Swift 18 points 1 year ago 
Think of a nice small project and build that.
[–][deleted] 10 points 1 year ago 
I understand where you are man. Here's what I'd suggest while you are learning, build a complex
app. Something that would take you at least 3 months. It would expose any gaps you may need
to patch up in your knowledge as you go along.
For resources use these; - Apple Documentation {Shocks me how so few iOS devs read them} -
App coda. - Ray Wenderlich - slack overflow for everything else. - Firebase {For any and all
backend needs}
Areas to focus on in particular - Best practices (big deal in iOS dev) - Networking proficiency
(when to load data, how to deal with errors etc.) - Concurrency {gcd, background threads.} <-
PAY ATTENTION TO THIS ONE - Learn why MVC is bad and how to use MVVM, if time
permits, RxSwift/Functional style - Unit tests

[–]kirualex 3 points 1 year ago 


There is no bad pattern, but there are bad ways to use them. MVC is the core pattern of iOS and
Android apps, I think it's better to learn to love it. MVVM does have its limits too.
[–][deleted] 2 points 1 year ago 
perhaps. But better to know that for OP's interviews.
[–]RollingGoron 3 points 1 year ago 
Why is MVC bad?
[–]vale93kotor 2 points 1 year ago 
Really? I thought most dev would read Apple documentation. Is pretty well done and basically
necessary to read every once in a while.
[–][deleted] 2 points 1 year ago 
Used to think so too, till I started meeting a lot professionally & in meet ups.
[–]iLearn4everBeginner 9 points 1 year ago* 
A lot of people suggest different blogs, courses and tutorial sites. Many of them are famous.
However, I have to warn you that almost all of them will teach you to look at the trees. But to be
a good iOS developer, you need to be able to look at the forest and not lose your nerves.
For that I must recommend this little-known guy called Matteo Manferdini whose blog posts and
emails have been really really helpful to me. He taught me things which I did not learn from
Paul Hegarty even after watching multiple incarnations (2010, 11, 12, 14, 15) of his Stanford
iOS course.
He has a short ebook (less than 15-20 pages) on the most fundamental things every iOS
developer must master before moving on to more fancy stuff. I think he included the following
amongst the basics: Xcode and Interface Builder, views and view hierarchy, view controllers,
containers (nav, tab), Storyboards and segues, table views (and collection views), auto layout
(and stack views), MVC pattern, delegate pattern, key-value coding and notifications.
Besides that, in a series of 5 articles, he walks through the architecture of an app with multiple
screens and teaches how to deal with the models and how MVC is inadequate. He guides the
reader through a slightly tweaked model which can lead to extreme clarity: Model - model
controller - view controller - view
This is well-explained by him in this series of 5 articles:
http://matteomanferdini.com/the-ultimate-course-to-making-professional-ios-apps-lesson-1-
how-the-mvc-pattern-guides-the-structure-of-professionally-developed-ios-apps/
http://matteomanferdini.com/the-ultimate-course-to-making-professional-ios-apps-lesson-2-
handling-data-and-business-logic-through-model-types-and-model-controllers/
http://matteomanferdini.com/the-ultimate-course-to-making-professional-ios-apps-lesson-3-
defining-the-flow-of-an-ios-app-through-view-controllers-storyboards-and-segues/
http://matteomanferdini.com/the-ultimate-course-to-making-professional-ios-apps-lesson-4-
showing-information-to-the-user-and-enabling-interaction-through-views-outlets-and-actions/
http://matteomanferdini.com/the-ultimate-course-to-making-professional-ios-apps-lesson-5-
making-view-controllers-communicate-and-sharing-state-across-the-whole-app/

[–]GreenGlider 7 points 1 year ago* 


Drop everything, start Xcode with an app in mind. Drag and drop controls over an empty canvas
so you get an idea of how things work, what's an IBOulet and IBAction and how to connect
them to your code.
You'll have a million questions, so here are the answers: Google, StackOverflow,
RayWenderlich. In that order. Learn how to search for stuff when you get stuck. Swift has
changed a lot in three years so learn how to make your searches show only last year's results.
 "Swift add border to view"
 "Swift add action to label"
 "Swift send data to new view"
 "Swift show data in tableView"
 "Swift send url request"
These are just examples of queries you will surely do. Start every query with Swift so you don't
get ObjC answers and remember to tick Google "Tools/Any Time/Past year" to reduce results.
Don't read books, don't watch online lessons, just code like there is no tomorrow. You will learn
about protocols, extensions, optionals as you face roadblocks and learn from others code. You'll
improve when needed, remember that premature optimization is the root of all tech evil.
Your first app will be ready in one week, it will be raw with plenty of stink, don't worry, it will
get better next iteration. Drop it and start another one, this one will be much better. You'll use
one file for each class, you'll use extensions to cover Swift deficiencies in many aspects,
specially with strings. You'll learn to organize your code better. Then the second week you'll
have a second app ready looking much much better. Drop it too and start a third one, then a
fourth. By the end of the month I guarantee your confidence levels will go thru the roof and
you'll be ready to start your own portfolio.
That's what I did, here is mine: https://github.com/kuyawa
Oh, and you'll have five more months to sharpen your skills to demi-god level. Unstoppable.
Good luck.
[–]tangerto 4 points 1 year ago 
Some of the most important things you need to master: Delegation, Callbacks/Closures,
Autolayout, View Controller Life Cycle, Singleton Pattern, MVC.
[–]petermolnar_hu 2 points 1 year ago 
I wrote 2 articles about the learning curve, I consider quite good:
https://learniosdevblog.com/recipe-to-become-a-valuable-ios-developer/ and
https://learniosdevblog.com/recipe-become-valuable-swift-developer/.
Learning is not enough, you have to get your hands dirty, so think about at least 2 projects you
want to accomplish during this limited time, and build them. I think the best thing is if you can
apply what you learn immediately on your projects.
[–]zemmekkis 2 points 1 year ago 
Sometimes the fastest way to learn something is to do it. If you are looking for a project let me
know (I am currently running an edtech startup right now and I am knee deep in both iOS and
Android code so could use some help).
[–]SemirgySwift 2 points 1 year ago 
I'm about halfway through the Big Nerd Ranch Swift book and highly recommend it for
someone starting out. It's clear, concise, and has a solid pace. They also have an iOS
Programming book that's more advanced (I actually bought that one first, then realized I should
start with the Swift book.)
[–]KarlJay001 1 point 1 year ago 
RW is a must have, but this guy:
https://www.youtube.com/channel/UCuP2vJ6kRutQBfRmdcI92mA/videos
does a great job too.
+1 on what others said about getting into an actually project pretty soon. Pick a project that is
something of a challenge and uses mainstream things (core data, RESTful, something very
common) and make it work.
I'm not so sure about the WWDC, it tends to be more advanced as well as covering many, many
different things. It's not really the place to go to understand entry level dev things.
[–]PotecutaObjective-C / Swift 1 point 1 year ago 
Watch the Stanford courses and do afterwards a small project that uses Networking, table view,
collection view with a custom flow layout ( reproduce the way tinder let's you rearrange your
profile pictures), learn auto layout and how to use nibs/storyboards, and how to add arrange
views from code.
Also, for the love of God, learn MVP or MVVM and how to create a Router Class to manage the
navigations through your app. Also search/ask how to do unit testing at every step of the way.
These design patterns are extremely important in a team that uses Ted and while it adds more
code in the short term, it' a lot easier to modify if you need a new feature or if anything is
changing in your app.
[–]greyintel 1 point 1 year ago 
Hey! I'm in a similar situation maybe we could help each other learn!
[–]kirualex 1 point 1 year ago 
I'd say 6 month is more than enough if you have a solid background. First study the basics, like
how Swift works, MVC and Delegate patterns. Then, practice practice practice. You could for
instance try this : https://medium.com/@samvlu/100-days-of-swift-736d45a19b63
Then each time you feel stuck, don't go directly on Stack Overflow but try to solve things using
Apple documentation.
Once you feel confortable enough, try a medium scale project (Network + Database + Caching +
a few specific frameworks like MapKit or something), this time using SO when you're stuck.
[–]Rennir 1 point 1 year ago 
Commenting to save this
[–]haxpor 1 point 1 year ago* 
Personally, minimal thinking to "learn" but aim to create a complete and publishable app on App
Store (with purpose to get revenue or not). A complete project will have lessons and immediate
lessons for you to learn along the way without learning all for minimal usage later.
Although you might feel I have no solid knowledge on this and that part, but just go along, after
some times you feel comfortable you just now have hands-on experience.
It's like learning business by going to real field or keep studying with books and resources.

[–]WhitePuppy 1 point 1 year ago 


I just dropped out of a very good CS program myself to pursue building my own developing
agency. Last semester I failed every class because I was literally coding away the shit out of
iOS, so I think I can relate.
I would suggest you to get a good idea of the overall development process of iOS first. Then get
good at something more specific within the whole spectrum. Preferably something that you like
and can be good at. For example, doing crazy animations within iOS or making creative use of
machine learning with swift. Get to the point were you can offer value or some unique skill that
you can share with other iOS developers. If you reach that point you will be able to learn from
serious developers. You will be able to work in groups and develop big complex apps and
projects, which will allow you to understand deeply iOS development.
Get to know other developers. Personally. Go to hackatons, go to meetups, create a
programming club. This is important because you can get mentors and peers to code with. Most
importantly you will realize that most people are too lazy to get past the point of really acquiring
the skills to develop something that matters.
Or you can just stay in your dorm and code 10 to do list apps and cry.
https://learniosdevblog.com/recipe-to-become-a-valuable-ios-developer/

Recipe to become a valuable iOS developer


by petermolnar 02. April 2015 Beginner, Intermediate, Objective-C 0

When I was wondering what should be the topic for my next post, I was really in
trouble. Actually, there are at least 3 proper blog posts to give you an overview and a blueprint
how to build and transform yourself into an iOS programmer, even without prior computer
science or programming knowledge. Which is awesome if you are a  totally new in
programming, but can be a real pain in the neck for your coworkers when you can’t apply the
basic principles such as effective algorithms, or design patterns not to mention the OOP
principles.
So, I went through those pages:
https://medium.com/ios-os-x-development/how-to-become-a-badass-ios-developer-
a87a1c78f609
https://www.codefellows.org/blog/everything-a-competent-ios-developer-needs-to-know
http://roadfiresoftware.com/2014/04/how-to-become-a-professional-ios-developer/
And  I prepared a new learning materials recipe for you, including materials from my
own experience:
Step 1: For beginners, who has never touched any code before:
Foundations of Programming: Fundamentals
Foundations of Programming: Object-Oriented Design
Introduction to Computer Science
Step 2: For individuals, who has some knowledge about OOP principles, program
structures and C language:
Objective-C Programming: The Big Nerd Ranch Guide 2nd Edition 
iOS Programming: The Big Nerd Ranch Guide 4th Edition
Step 3: For individuals who are more curious
Head First Design Patterns – O’Reilly Media
Algorithms, Part I – Princeton University | Coursera
Algorithms, Part II – Princeton University | Coursera
Developing iOS 7 Apps for iPhone and iPad
Developing iOS 8 Apps With Swift
You might already noticed, that those resources Objective-C (or Java) based. I am on
the same position as the most of the guys on the above mentioned posts, that you can’t really just
skip Objective-C at the moment. I think for a beginner the best strategy is to know the
foundations, and build the new features on them. Later I will add resources for Swift as well.
Another problem could be the price of those materials, since there are free online
resources as well. Honestly, I think that this investment is worth it, if you consider to change
career path.
I couldn’t stress and emphasise enough the Big Nerd Ranch books, they are the best
material I have ever read in years of learning programming and about this topic. Actually I am in
the middle of the second book, but I still love it!
https://learniosdevblog.com/recipe-become-valuable-swift-developer/

Recipe to become a valuable Swift developer


by petermolnar 08. April 2016 Beginner, Swift 0

I think the time is finally here to (re)think your approach to Swift. It has been in the
wild for long enough time to see how smart step was to make it from scratch and publish it as
open sourced. In short: it was really smart. I purposely wrote “Swift developer” in the title, since
it seem to break out into the wild, it is not tied to iOS or OS X development anymore.
The skyrocketed popularity, the effort what IBM made for give you a complete toolset
and the rumours that Google and Facebook both are playing with the idea to switch to it, all of
that points in one direction: Swift knowledge will be valuable and it is worth to learn it in long
term.
So, here is my updated list of resources for getting a good grasp of the language:
Step 1: For beginners, who has never touched any code before:
Foundations of Programming: Fundamentals
Foundations of Programming: Object-Oriented Design
Introduction to Computer Science
Step 2: For individuals, who has some knowledge about OOP principles, program
structures:
Swift Programming: The Big Nerd Ranch Guide
A Swift Tour by Apple
Since the most of the videos of WWDC talks are also available on internet I would
strongly recommend to check the videos section of the Apple Developer site. Videos only can be
played on an iOS device or in Safari, but Apple made the related content available in YouTube
as well, so it might be good to subscribe to the official Swift Language channel. This video is a
very good start, although I wouldn’t recommend for total beginners.
If you have particular interest in iOS or OS X development:
Developing iOS 8 Apps With Swift
iOS Programming:  The Big Nerd Ranch Guide  5th Edition
Cocoa Programming: For Mac OS X 5th Edition
Please note, that only the 5th editions of the BNR books above were written about the
Swift language!
Step 3: For individuals who want to be a better programmer:
Head First Design Patterns – O’Reilly Media
Algorithms, Part I – Princeton University | Coursera
Algorithms, Part II – Princeton University | Coursera
Tools:
Nowadays you don’t have to own a Mac to start with Swift. You can download the
latest version for Linux from the website of the project: http://swift.org
As I mentioned IBM also put together nice resource pack to support the language, you
can check out at https://developer.ibm.com/swift/ . I think the most important is the web based
IBM Swift Sandbox ,and the new web front- and back-end framework the Kitura.
Although the language itself is still in a rapid change and development, which might
cause some compatibility problems, the 3.0 version will be very promising, won’t miss it out.
Happy learning and coding!

Вам также может понравиться