1 year of swift but still learning at a slow pace. Any suggestions?

Currently attempting to understand the whole setup process of AVFoundation to take photos within an app, and have been able to implement the code from the screencasts within Ray Wenderlich on how to capture photos.

I just wanted to look into AVCam from the apple developer documents to really get how to implement a full featured camera with all the code associated on how to do so properly. But it just seems so advanced to me that I am not able to properly dissect and learn step by step how to do so.

My question is what is the best approach for someone who has about a year of swift self-education and really wants to excel in coding without wasting time jumping from tutorial to tutorial to get bits and pieces of un related code? I am in the stage where I have advanced to where I know the basics pretty well, can navigate throughout xCode without a problem and have my own app on the app store “Stracker - Fit for life”, but I can’t seem to think for myself and code a well developed app in a reasonable amount of time with features that are more advanced. Which is the goal! I don’t want to think I am too “stupid” to code, but ugh i just came seem to grasp these concepts I want to learn without forgetting everything, and I feel as if I am learning really really realllly slowly.

Thank you, All advice is greatly appreciated!


I don’t think you’re alone in feeling like there is too much to learn. But could I suggest:
Create a wiki or other structured information repository for every project you consider. Decide what your minimum viable product is - leave the really fancy stuff out. Then go build that. Probably for your camera project you want to start with just being able to take an image (which you said you can do). When you get that running, make it into a polished app!

Then make it better. Incrementally add features. If you want full white balance, focus and exposure control think carefully about how each should look and feel in use, then go research those features, add it all to your wiki. Then go branch your project and add that feature. Optionally, push a release to the App Store or to testflight.

Each time you make it better you are going to be jumping into the unknown but at least at the end of it you will have that wiki, and that repository with its branch and commit history, as a record of how you got there. I don’t think anyone remembers every feature or line of code they ever wrote and every day is like two steps forward, one step back, but in the end you get there.


I really appreciate it, loved the response and your last line really hit home!

“Every day is like two steps forward one step back, but in the end you get there.”

I think psychologically I was letting that one step back put too much stress on me and really forget how much progress can come from advancing every day!

If I may ask - I have never used a wiki, just researched a bit on it and seems really interesting to experiment with! Do you pay for a wiki hosting or could you recommend a free source that is viable!

You can self-host your wiki - see the MediaWiki wiki (of course there’s a wiki about the wiki!). But it doesn’t have to be that. You could get very good results with other software like omnioutliner or a mind mapper. Personally I prefer to write notes about everything, on paper.