Screenshot of Udemy course from https://www.udemy.com/course/ios-13-app-development-bootcamp/ (It is worth noting that Udemy is one of my favorite online course platform because it often provides huge discounts and makes course very affordable. I would recommend you to wait / research on when the next discount will be, which will not be too far away based on my past observation)

Udemy Course review: IOS & Swift The complete IOS App Development Bootcamp by Dr. Angela Yu

Small Town Little Anthony
24 min readFeb 24, 2021

My very first IOS app was just approved and released on the app store. Hooray! I think I am finally ready for this online course review because for this course review, I want to do it a bit differently, a bit less boring — I am going to take you through a journal together with me, from the moment when I accidentally clicked into her course when I was really trying to “skip ads”, to here, where my very first independently developed mobile app is approved and released on Apple app store.

I hope by the end of the article, I can convince you that this is a bit more than just another course review, but a proof of concept, that with the RIGHT resources (i.e. this course) and a bit of commitment, you can overcome a task which may have appeared to be very daunting and even impossible at the very beginning.

Background

I am sure many of you would have seen the very frequent YouTube ad about this course a few months ago. That is how I came to this course, when I tried to skip ad but accidentally clicked on the course link.

Unlike most of you looking at this article now, I was in fact not actively looking for IOS development course / projects back then but shortly after that “accident”, I realized it was a “happy accident”. This is actually one of the comparative advantage of this course, the inspiration, the ideas and the mentoring provided by Angela. I will elaborate more on this but if you have some prior knowledge in programming, you would know well that the technical programming knowledge of a developer is only a small part of being a developer. As far as I am aware, Angela is the only one who has done mentoring right and well. But more on this later.

Commitment and my passion invested

Before we go on, I want to share this chart with you — a record of my time spent on this course and the app I built as my first project practicing what I learnt in IOS development.

Please note that the number of hours recorded are productive time, where I sat down in front of my desk, turned off my phone and stayed focus. This excludes any break taken in between and any unproductive time I spent on YouTube or social media.

I am a massive productivity nerd and I track my productivity all the time. The point I am trying to make here is that, in order to turn this online course into an app, I am talking about serious work, time invested and commitment. Before you make that commitment, I want to show you how much time you are looking at. Your commitment measured in hours to study this course and build the very first time could be very different but, this should give you a rough idea. Please note that even before I started with my practice project, I have thoroughly work through this course at least twice, in addition to the time I came back and revisited the concepts after starting with the projects.

Photo from author: number of hours spent studying this course and the subsequent practice of concepts by building my first app, breakdown by month.
Photo from author: number of hours spent studying this course and the subsequent practice of concepts by building my first app, in total.

I started with my IOS development learning journals in August 2020 (when we did not have much to do) and my app was released to app store on 15 Dec 2020. A total of 349 productive hours were invested. Please note that I have separately recorded my time spent learning about designing, which is another important part of product development. More on this later.

But I do want to know how you feel about this 349 hours and what you think. Too much? Too little? What was your expectation? Leave a comment below. Would love to hear it :)

Big disclaimer time

Before you read further, here are a few points for the purpose of being completely transparent.

  1. I am now officially a big fan of Dr. Angela Yu simply because I truly believe this is one of the best courses I have ever taken and please trust me, I have taken many courses.
  2. This has a few implications. While I am a firm believer that a “review” should be balanced, with pros and cons analyzed objectively and independently, and this is how I have been doing it with my other courses, in this case, I will make an exception for Angela and, you will see, I am getting unprofessional and biased that all I can think of are the good things about this course. So my apologies in advance if you are looking for a well-balanced review. But it would be good to know about the good stuff too. But I promise the review, despite being one-sided, will be comprehensive and thorough.
  3. I am a computer scientist by training and I have background in other programming language such as C++/Java/Python. I hold a bachelor degree in mathematical and computer science with a major in computer science. I also have a master in finance but that is hardly relevant for as far as this article is concerned. I believe my background in computer science does matter because your background might be different and therefore, your journey, if taking this course, might vary slightly. However, I want to make one point abundantly clear: please please do not feel like you are left behind if you are new to programming and more importantly, please do not be discouraged by a lack of background in programming. I cannot emphasize this enough that coding and programming is like learning a third language. They look cool (boring and complicated) but they are really not. If you want to learn about it, no matter what your background is, you can do it. You see how I am typing English now but I barely passed my English exam and I am 100% Chinese? Oh good, I found something common between me and Angela. How about that!

Now with admin out of the way, let’s start properly.

Course review content summary

This article is pretty lengthy (for the sole purpose of being comprehensive because I know that the commitment to learning a course is huge and it would be good to invest sometime upfront, rather than stopping / regretting half way). The content is broken down into the following sections if you want to skip over to the part you care about:

  1. Background
  2. Course prepared right: Course content design and coverage/depth, and done with projects
  3. Key differentiating factor : how concepts are well explained and your questions anticipated by Dr. Angela Yu
  4. Second differentiating factor: “Angela cheering you up”, and the inspiration to kick you started or keep you going
  5. Supplementary course content: content on App marketing course, app designing courses, massive additional tricks and resources
  6. What comes out of this course: the app I built after graduating from this course
  7. Bonus module of additional resources: I love Angela’s course, but not because I have not seen enough other courses to compare with
Photo from Pixabay: no reason, just love the beautiful scene, and when the dawn breaks

2. Course content design and coverage / depth

The detailed breakdown of topics covered are listed on the Udemy official website: https://www.udemy.com/course/ios-13-app-development-bootcamp/. I believe you have the option of previewing the first few sections and a 30-day money back guarantee too.

However, just in case you are after a quick high-level overview of all main topics covered, I have taken a screenshot of my own course notes, showing heading level 1. And yes, I have written loads of notes, extending to page 656, answering the question where did that 349 hours go.

Course note taken by author when doing this course — heading 1 showing the major topics covered by the course. Refer to Udemy website for the complete topics covered by the course at https://www.udemy.com/course/ios-13-app-development-bootcamp/

Course content design

Interestingly, and something I truly appreciate, is that online learning has gotten so much better in the past few years and I did not have this luxury when I was doing my bachelors a few year ago.

By this I mean that if you do a simply google search, or YouTube search, or go to the many online course websites such as Coursera, Edx, Udacity, MIT open course project, etc, you will realized that as long as you have the desire and commitment to learn, you can always find free or affordable courses of very high quality. Many of them are well designed and of high quality. Believe it or not, this was not the case a few years ago. While we did have our best friend, Google, which can help you get there eventually, the well-developed online learning community provides a systematic and comprehensive study journals. This is a luxury which I did not have.

The point I am trying to make here is that many other IOS development courses / textbooks are really of good quality, which implies that the course design may not be a key differentiating advantage of this course.

However, let’s still talk about it and why this is one of the best design courses online.

1. The flow and increasing level of difficulty is just nice

I would say the vast majority of programming language concepts and IOS development in Xcode is covered before section 22. By then, you would have a very firm grasp of programming concepts from the basics of operators, types, syntax, control flow, functions, methods and so on, to the more advanced concepts such as classes, error handling, extensions, protocols etc.

What I like about this course, as compared to other courses, is that you progress through at a good pace and you are always accompanied by projects, with project files already set up for you.

What I see in a lot of free online YouTube courses is that, they just talk through the the programming concepts and then, move on the projects. Most students would feel overwhelmed and even give up probably when they get to OOP (the concepts on classes, when programming language first gets very conceptual and abstract). While it is inevitable that programming language can indeed be very abstract as you progress through, this daunting challenge which deter many students are well taken care of.

Angela has been bringing just the right projects constantly. The project files are set up and ready to go, so that students focus on the learning part, instead of the learning part. The projects covered are just right for the programming concepts about to be covered. In fact, very often, Angela start with the projects first and do deep dive in certain programming concepts where you need them.

This is a very well-thought approach because it does not only makes programming interesting (when you work on projects) but also make sure that you build strong foundation as you go.

If you have prior experience of learning programming language, you probably realized that you really learn by coding. You can’t simply learn by reading through the concepts. This is especially important when you get to more complex stuff, where you really need a strong knowledge. Many of the new learners (and I am guilty of this) would power through all the concepts even before writing their first line of code (new beginners tend to stop coding right after writing hello world and focus on concepts now that they know what coding is about). However, this is not a good practice and the reason why new beginners start to struggle as they move to more complex concepts, without a strong foundation.

Learning through projects and build strong foundation with simple projects to prepare you for more complex theoretical concepts

Many other online courses only move on to projects after covering a fair bit of programming concepts, which I believe is a bit too late. Angela, on the other hand, would start with the easy projects first. “I am rich” is one good example where the app basically does nothing but to show you a picture, after you have paid for the ridiculously overpriced app. Don’t get me wrong, I think it is a pretty cool concepts besides its ethical issues, but this would be a perfect projects to start as a beginner, and Angela found it and nailed it.

2. Coverage and updates for newly released topics (by Apple)

The projects covers absolutely everything (at least as far as I can think of), including the newest concepts such as machine learning and ARKit, in addition to the normal basics of course. This is appreciated because many other courses have not been updated to include these new topics, which were just released by Apple.

I have to be a bit honest here. While the new topics such as ML and AR are really cool to learn, I personally feel that they are less cool and useful when trying to implement and use in real life use cases. For example, machine learning is pretty cool (and I have spent quite some time on it) but let’s face it, it is not that mature yet and its use cases are still fairly limited, at least in most of the fields that I have exposure too.

But still, it is extremely useful to be included in the course content so that we start to get exposure to it and start to think of ideas to leverage the new technologies.

3. Depth of the course content, i.e. is it a beginner’s course or a professional developer’s course

Well, I may not be the best person to comment on this question because I am not a professional developer.

However, I do believe that the answer is pretty simple and this course is indeed a beginner’s course, in a sense that it would be perfect for someone new to programming or someone with little prior knowledge, to learn about IOS development and Swift programming language, to practice using projects, and to eventually be able to build a simple app. I will talk about the app I built more towards the end of this article (because you know, this is a course review after all) and hopefully, the app I built can give you a really good idea of what kind of app comes out from this course at for someone like me who is taking this course. Spoiler alert, the short answer is that the app I built after taking the course is extremely simple and easy. But an app does not need to be complex and difficult to build, in order to be interest or useful. Valid point right. If not, why would I spend my 349 hours on it right.

I would say a professional IOS developer (note the word IOS, because you can be proficient in programming languages such as Java and C++, but IOS development using Xcode would still be very new and therefore, you would still benefit a lot) will hardly benefit from the course because as the name “bootcamp” suggests, it is a basic course covering basic concepts. However, if you are an IOS developer, say working in a team and are already building IOS apps, I don’t see how much you can benefit from this course.

Besides, we all know professional programmers learn from stack overflow when searching for the specific topics / issues they know how to search / ask. In addition, while you are at this stage, you probably know better than me and anyone else because you are the best person to make the best study plan for yourself.

Just a quick note, if you are looking for quick tutorials on specific topics and quick implementations, I recommend Paul Hudson’s course at https://www.hackingwithswift.com/.

I started to find this website really helpful after I “graduated” from Angela’s course. This is because I already know what to look for and the implementing approach. HackingWithSwift is really good when you know what you are looking for and just after a quick tutorial on implementation.

But on offense dear Paul, I still believe Angela’s course is better suited for “gradual and systematic” learning.

Photo from Pixabay

3. Key differentiating factor — how concepts are well explained and your questions anticipated by Dr. Angela Yu

I used to be a tutor and teach university finance courses. So I would naturally pick this up as a key differentiating factor of Angela’s course when compared to other IOS development online courses.

This is because while all instructors / teachers are doing a the most noble in the world of sharing knowledge, I do believe that explaining concepts well and in a way that can be easily understood by the vast majority of listeners is critical and of paramount importance.

As an ex tutor, I can honestly say that I think explaining concepts in a way that others, who may think in different way than you do, is a super power, and Angela has got this super power.

I will use an example to explain what I mean. For example, protocol is one of the most powerful but complex concept in swift programming language. In a nutshell, and for the benefits of readers who don’t even know anything about programming language, protocol allows us to use code which have been written by Apple (or any other developers really) when they don’t even have any idea of what I am about to do. This is made possible by me adopting the protocols and obey by certain rules. After all, I want to use codes written by Apple developers in the past, in a future that is yet to be known by the Apple developers when written those codes and whey they have not the slightest idea of what I am about to do, in my future that they can’t foresee, or maybe simply, don’t care. I know, I am only making this even more confusing. But this is only to make that point of how Angela managed to explain such concepts elegantly.

In the deep dive session of protocol, Angela converted this extremely complex concept into a real life example of how emergency call handler will send messages of instructions to pagers, which are carried with qualified delegates to perform the tasks.

I will not go too deep to this because this is not a programming lesson but the gist is that, the concept of protocol and delegates is exactly the same, in that the handler does not need to know who is the receivers of the instructions. All he needs to know is that as long as the receiver is qualified by “adopting” the certificate of advanced life support, he/she can perform the tasks. In the case of me wanting to use codes written by Apple in the past, Apple does not care who I am or what I want to do with my codes, all Apple needs to ensure is that, I am qualified and adopting to their protocol (having the advanced life support certificate), then I can use Apple’s code to perform certain tasks.

Screenshot taken from Udemy course — iOS & Swift — The Complete iOS App Development Bootcamp by Dr. Angela Yu, explaning the concepts of Swift protocol and delegates

I know this explanation does not make much sense at this stage, but the point is really how Angela converted a complex concept to a real life example that she is familiar with (and I am interest in too), so that it can be easily understood.

In addition, Angela has this super power of knowing what will get us confused and anticipate questions which we may have. I feel this because almost every time when I feel like lost in certain concepts, Angela, predicting a future that she can’t foresee, start to explain it. I was like…. hmmm, ok unlike protocol, you can see the future. I think this is even more important when the course is taken online and interaction is limited to none.

I know that this “key differentiating factor” might appear to be bit subjective and your brain may think differently compared to mine and to Angela’s, but if I have to pick a reason why this course is my favorite and how I turned into a fan boy of Angela’s, this has to be it, the superpower to explain complex concepts in an easy to understand way (at least for me) using examples and good illustrations, and also the thoughts to anticipate what may get me stuck and explain them without me asking.

Photo from PixaBay

4. Differentiating factor: “Angela cheering you up” and how my journal begins

I finally got the “course review” part out of the way and covered some basics aspects of the course and why I think from a course design perspective, it is a great course. Now, as promised, my journey finally begins.

As I mentioned at the beginning, I was not actually thinking of building my first IOS app when I accidentally clicked into Angela’s course via YouTube ads.

And sometimes, that idea, and that little inspiration, that desire to start with something you feel passionate about, is more important than anything else, because as the Ancient Chinese Proverbs says: a journal of a thousand miles start with the first step. This is why I think this differentiating factor deserves its own section, and this is something that only Angela managed to do for me so far, because I would not have started with my IOS development journal without her.

In another word, this course is not only just another course, but a mentoring session for me too.

Along the way, Angela will give you some pep talk towards the end of each session. This may seem trivial at this stage but if you have worked on a project before, you would know how many times you ask yourself constantly, why am I even doing this. Angela’s encouragement and “cheer up session” often come at the right time, when most of the students are considering / likely to give up.

For me, this actually happened before I started. I was not even considering IOS development at this stage, because as a programmer, I know how much of a commitment this is and how much effort it would be to learn a new programming language (swift programming language developed by Apple), a new IDE (Xcode developed by apple), the designing of a product (instead of simply writing codes) and so much more.

However, I got the inspiration and decided to commit to a IOS project / app after I saw her speech, which was per-recorded and shared via the course.

Bonus session: How to Make an App from Beginning to End

I still remember I was lying down on my bed when I saw this session. It is roughly one hour where Angela talks about the whole journal at a very high level. It seems to be a recording of a talk / seminar. This session looks more interesting than “deep dive into object oriented programing and the concept of inheritance”. So I actually clicked into this while I was taking a rest and after watching the session, I have made the decision to commit and make my very first IOS app, success or not, profitable or not, I will make it.

Photo from the author: goal setting and goal accomplished

And just for fun, I have taken a photo of the note I wrote down after watching the video and I even framed it. It is a bit dusty but the message is still there, carved and accomplished. Of course I covered the other goals / objectives and I will not comment on whether they are accomplished or not. Make your own inference if you care to.

What happens later was less exciting, which is actually well demonstrated by the photos I attached at the beginning: 349 hours of coding, building, debugging, designing, testing. My countless weekends gone this way. Luckily I did not have many places to go anyway.

This is how I got started but Angela actually gives inspirational (pep) talks throughout the journals, when she anticipates you may feel, I don’t know, lost, desperate, wanting to give up, question why you are doing it, doubting your own projects, want to go out and party. And the timing she gives those talks are relatively accurate too, i.e. constantly throughout the course.

But I guess the point I am trying to make here is that, programming / completing a coding project is no joke. It is boring. It is time consuming. It constantly drives you crazy. While other instructors focus more on the technical sides of programing / coding, Angela has not forgotten about the human side and the emotions come naturally with coding.

So, I would say, even though it may seem trivial at this stage when you really have not experienced the hard work ahead, this will be desperately needed, at some point in time down the line.

Quick note on my learning vs practicing with projects

I am someone who has to approach a task with a systematic approach. It is like people who have to do through lecture slides before moving on to sample exam papers, where others start with sample exam papers and work backward to find what they missed out.

This is why the 349 hours actually include:

  1. I worked through the courses at least twice. The first time, I basically fasted forward and listened through the programming concepts and clicked along when I feel like
  2. The second time, I would complete the projects independently, step by step, and write down my own detailed notes afterwards. This is why my notebook is more than 600 pages
  3. The time I spent learning the courses actually are roughly equal to the time I used to build my first IOS app. Again, this is because I prefer to work through the course in details first. You might adopt a completely different approach, say, start with the project and go back to the relevant sections of the course.
  4. When building my app, I feel like 70% of the concepts are already covered and I can even find the exact sample codes I needed. This was due to the well-designed course content which I mentioned previously. At least for my part, I noticed that the core functionality of my app (building interface, having multiple screens, storing data in core data) are already well covered.
  5. This is another reason why I love Angela’s course, because it is useful when you are building your own app. I frequently referred back to Angela’s course video and course projects when I was working on the project.
  6. As with any coding exercise, google and stackoverflow is your best friend. i did get stuck on a few key points (e.g. UI not updating when I wanted them to, can’t get a button to the way I want them to, with a shadow or with a certain corner, to query core data in a certain way etc) but I would say, this debugging time has been minimized by working through the course multiple times.

5. Bonus modules (supplementary course content)

Mobile app development is in fact very different to programming / coding, even though programming / coding may form a significant part of it. There are much more to it.

This is what many instructors tend to forget: learning Swift programming language or Xcode IDE alone are not good enough. Other aspects such as designing, marketing, idea validations are just as important.

I will not elaborate too much on this but as you can tell from the course content I attached at the beginning of the course, there are many bonus modules which come along with the course. You can probably find them separately on other course especially if you want to take a deep dive, but what was kindly provided by Angela are perfect for getting you started.

I will call out two particular modules, the app design course and the app marketing course taught by Angela and as always, Angela is as good as teaching coding as teaching marketing, or app designing, or leading a healthy lifestyle, or lose weight. Okay jokes aside.

You can probably tell that when I tracked my productive hours, there are some “pink hours” where I spent on designing. And that is very true, I spent lots of time designing my roses, the garden, the signs, and how the roses will grow and wither.

It is worth noting that while Angela included app designing course, they focus on interface design, icon design, font design, etc. But I needed something more for my roses and I need them to look great because they are a key part of my app. This is why I needed to spend sometime with design tools, such as Adobe Illustrator, iMovie, Keynote, Photoshop etc, in addition to the tools introduced by Angela.

This is echoing my point that building an app is much more than just writing the code and getting the interface to work, it is a lot more.

6. What comes out of this course and my journal — my very first IOS app published

Alright, here is the finale, and what is one of the most exciting event in the year 2020. I have left it to the last part because you may find it least relevant to this article. But I have decided to include the information about my app here because I think it would give you an idea of what app can be built after taking the course and practicing what is learnt in the course. You will see that it is definitely not like GTA or Facebook or Instagram or anything, but I hope you find it interesting too.

Submission of Xcode project build to Apple App Store Connect

To submit my project to Apple App store, step number one is of course to pay apple some money. The Apple Developer Program, which is compulsory if you were to submit your app to apple store for review and release, cost me USD99. This is obviously not a small amount of money and I have no hope that my app would earn me back this enrollment fee. However, I still believe that this is money well spent.

I will not talk about too much how the app is submitted but in general, I submitted my Xcode project built to Apple App store for validation. As soon as my validation passed, I can then log in to the App Store Connect website to fill out some information, such as app name, app description, privacy policy etc. All of those information which you see on the app store.

By the way. Angela also did a good job explaining this part too, and I particularly loved how she integrated the app marketing course within this course to give us a truly beginning-to-end coaching. I mostly followed her advice, filled in the information and submitted my app to Apple team for review.

App approved by Apple team and released on app store

This process is in fact very pleasant and smooth.

I submitted my app around 1am in the morning and roughly 5 hours later, I received the email saying it has been approved (when the average review time is 24–48 hours). I believe this is largely attributed to the fact that my app is extremely simple.

On 15 December 2020, my first IOS app was approved and released to the app store. And I was so excited to this email coming through, marking a milestone of my effort in the past few months.

I can honestly say that this was one of the best moments in my life, to watch something I passionately invested in come to fruits.

I don’t want to talk too much into details as I can see how this could quickly turn into a promotion article. So I will stop here.

However, it is worth mentioning again, how great Angela is, because I used exactly the same approach she taught in the course, to quickly build my landing page using GitHub pages, which I found to be my favorite way. Again, many of Angela’s ways are the good ways!

And Angela, if you are listening / reading, it is at this point that you may want to give me a big shout out, because I should probably stop explicitly repeating how great you are simply because it is just not “professional” for a course reviewer to get this biased. And also, it would be pretty awesome for the fan boy to hear from the Angela herself but I am just saying. I promise I will stop now.

Next steps — do some digital marketing and promotion for my app

Again, this is following Angela’s advice on her lectures on digital marketing and to avoid the misconception that “build it and it will come”.

However, I think I will pause for now and I will let you know what happens next (if anything happens at all).

7. Bonus modules: some other resources you may find useful

This is to copy what Angela is doing with her course and also, include some additional resources I personally found useful as I started my journey with IOS mobile app development:

Hacking with swift founded by Paul Hudson

I would highly recommend this site especially if you are looking for a quick example of implementation of a specific tasks (using a specific class, for example, WebView). The tutorial often comes in both video and text. They are well explained and the sample codes are often exactly what you need

Free Udacity course — Intro to iOS App Development with Swift

I have taken (and reviewed on this channel) quite a few Udacity course. I would say generally, they are of good quality but very much over-priced. They are good courses but I just can’t convince myself to spend thousands of dollars on online courses, where there are equivalent which are just as good (in this case, in my personal humble opinions, better and cheaper alternatives).

However, luckily for us and very kind of Udacity, there is a free introduction course to IOS app development. I have worked through their Udacity Nanodegree but the introduction part is a good way to get a peek of what IOS app development look like. And of course, if you loved the introduction course, and if thousand of dollars don’t matter too much to you, please feel free to enroll in that Nanodegree.

Textbook

This one can be a bit old school but sometimes, I do refer to textbook especially when I need to get some basics right and when I feel like I need a more logical and systematic explanation. Here are some textbooks which I referred to along my journal. They are definitely not complete but in case you are looking for good books, here is a list of IOS development related textbooks which I referred to some point along the journal so far:

Photo from author

Conclusion

Here we are.

My course review of the Udemy online course iOS & Swift — The Complete iOS app Development Bootcamp by Dr Angela Yu.

This is definitely one of my first favorite course which I enjoyed taking and found useful when building my first IOS app. I am glad that after working through the course multiple times and constantly referred back to the course, an app came out of it. I also appreciate the all the support and mentoring provided by Angela to the hundreds of thousand of students taking it.

Best of luck to whoever is considering taking it in the future and I trust you will have a shared feeling as I did: learned, practiced, and glad you did it.

--

--

Small Town Little Anthony

Reading about your life and sharing mine. Technology, programming and investing.