1 00:00:00,120 --> 00:00:01,570 Welcome to the Treehouse Show. 2 00:00:01,570 --> 00:00:04,322 The Treehouse Show is our weekly conversation with the Treehouse community. 3 00:00:04,322 --> 00:00:08,942 [SOUND] In this episode, we're gonna dive in to a few 4 00:00:08,942 --> 00:00:13,250 of our recent favorite community forum posts. 5 00:00:13,250 --> 00:00:16,430 I can't say it enough, our community is such a friendly and 6 00:00:16,430 --> 00:00:21,170 safe place to get answers, feedback, and advice on your coding journey. 7 00:00:21,170 --> 00:00:24,040 We're gonna talk about building projects, the mobile application 8 00:00:24,040 --> 00:00:28,360 development landscape, and the exciting possibility of an online Treehouse store. 9 00:00:28,360 --> 00:00:29,380 You know you want this hoodie. 10 00:00:29,380 --> 00:00:35,050 Adam Acree asks, is it better to build projects first or take courses first? 11 00:00:35,050 --> 00:00:38,950 I love this question, because this is the chicken and egg question about learning. 12 00:00:38,950 --> 00:00:41,740 And the answer is yes, you should do both. 13 00:00:41,740 --> 00:00:44,600 You should build projects and take courses. 14 00:00:44,600 --> 00:00:49,885 And that anxiety about beginning that you talk about Adam is so super common. 15 00:00:49,885 --> 00:00:53,660 Treehouse student, Aaron Goodrow suggests working on courses first and 16 00:00:53,660 --> 00:00:56,900 making sure that your foundational skills are rock solid. 17 00:00:56,900 --> 00:00:58,460 Great advice Aaron. 18 00:00:58,460 --> 00:00:59,290 Another student, 19 00:00:59,290 --> 00:01:03,220 Rachel Campbell suggests that it's helpful to build projects as you learn. 20 00:01:03,220 --> 00:01:05,590 Now she points out, that as you build a project, 21 00:01:05,590 --> 00:01:09,240 you'll find problems that you don't yet have the skills to solve, and 22 00:01:09,240 --> 00:01:12,290 then you can focus your learning on the missing parts. 23 00:01:12,290 --> 00:01:15,495 Rachel also encourages Adam to try it, and see if it feels right for him. 24 00:01:15,495 --> 00:01:17,370 Now that's excellent advice, Rachel. 25 00:01:17,370 --> 00:01:20,570 There is no universal right way to go about this. 26 00:01:20,570 --> 00:01:23,350 It's a matter of how you divide and spend your time. 27 00:01:23,350 --> 00:01:26,250 Now, courses are going to help give you a basic understanding of 28 00:01:26,250 --> 00:01:28,010 how something is done. 29 00:01:28,010 --> 00:01:31,140 But, until you try to create something on your own, 30 00:01:31,140 --> 00:01:35,550 you may not fully understand the why of the content presented in the courses. 31 00:01:35,550 --> 00:01:38,610 It's putting that practice to work that helps really make sure that you got it. 32 00:01:39,790 --> 00:01:42,180 And don't worry, you'll feel it. 33 00:01:42,180 --> 00:01:45,200 You'll be watching something and you'll want to make something. 34 00:01:45,200 --> 00:01:48,070 Now follow that impulse, that's what the course is for. 35 00:01:48,070 --> 00:01:51,970 When you run into something that you can't do, try to learn that specific thing. 36 00:01:51,970 --> 00:01:55,120 And when you build it, you most certainly will be hooked. 37 00:01:55,120 --> 00:01:57,610 I've been chasing that impulse for decades now. 38 00:01:57,610 --> 00:02:01,910 David Holmes asks a great question here about mobile application development. 39 00:02:01,910 --> 00:02:06,530 Now this is a hard question and David is not alone in his pondering here, 40 00:02:06,530 --> 00:02:09,550 making this a great question to feature on the show. 41 00:02:09,550 --> 00:02:12,240 If you have an opinion or thoughts, please jump in to this convo. 42 00:02:13,480 --> 00:02:15,450 This is gonna get a little weird. 43 00:02:15,450 --> 00:02:19,630 Now you can tell by just looking at the title here that there is a lot going on. 44 00:02:19,630 --> 00:02:24,540 Now if you aren't aware, there are two big camps in mobile application development, 45 00:02:24,540 --> 00:02:27,450 mainly because of the Smartphone market share. 46 00:02:27,450 --> 00:02:31,021 You usually either develop for Apple products, also known as iOS or for 47 00:02:31,021 --> 00:02:32,221 the Android platform. 48 00:02:32,221 --> 00:02:34,785 Now, after the two big camps, Apple and Android, 49 00:02:34,785 --> 00:02:38,190 you then have four popular options for building mobile apps. 50 00:02:38,190 --> 00:02:41,330 By the way, Treehouse teacher Amitt goes into more detail about this 51 00:02:41,330 --> 00:02:45,570 on a dev team show episode, Alternatives to Native Mobile App Development. 52 00:02:45,570 --> 00:02:46,790 Four popular options for 53 00:02:46,790 --> 00:02:51,160 mobile development are these, Native Development in the Native Language. 54 00:02:51,160 --> 00:02:52,290 So using Swift or 55 00:02:52,290 --> 00:02:56,270 Objective C to build iPhone apps, or Java and Kotlin to build Android apps. 56 00:02:56,270 --> 00:03:00,250 This is the traditional path that we teach here at Treehouse, and that most employers 57 00:03:00,250 --> 00:03:03,360 are looking for when they are looking to hire a mobile developer. 58 00:03:03,360 --> 00:03:08,390 Web wrappers let you create mobile apps using HTML and CSS and JavaScript. 59 00:03:08,390 --> 00:03:12,040 So you could be building apps by learning basic web design. 60 00:03:12,040 --> 00:03:15,380 However, these web wrapper apps are a little limited and 61 00:03:15,380 --> 00:03:18,565 can't take advantage of all the features that the native languages do. 62 00:03:18,565 --> 00:03:23,680 Cross-compilers like Xamarin, Ruby Motion, Kivy, React Native, or NativeScript. 63 00:03:23,680 --> 00:03:25,450 Now, with a cross-compiler, 64 00:03:25,450 --> 00:03:29,390 you leverage one language that compiles into many native apps. 65 00:03:29,390 --> 00:03:33,195 Now for example, you can leverage your C# skills with Xamarin, or 66 00:03:33,195 --> 00:03:38,820 your Ruby skills with Ruby Motion to simultaneously build iOS and Android apps. 67 00:03:38,820 --> 00:03:40,574 Progressive Web Apps. 68 00:03:40,574 --> 00:03:45,115 Now, [LAUGH] one more wrench to toss into your what should I learn problem space, 69 00:03:45,115 --> 00:03:49,535 have you heard of PWAs or Progressive Web Apps? 70 00:03:49,535 --> 00:03:52,230 They're basically apps that use web technology 71 00:03:52,230 --> 00:03:54,582 that make a native app experience possible. 72 00:03:54,582 --> 00:03:58,350 It's kinda like a fresh take on mobile first web design, 73 00:03:58,350 --> 00:04:00,920 where you design your website as a mobile app first. 74 00:04:00,920 --> 00:04:02,580 You get little icons and everything. 75 00:04:02,580 --> 00:04:06,460 Now, Gil talks about this in his introducing progressing web apps workshop. 76 00:04:06,460 --> 00:04:10,090 And while it may appear that the straight forward way to learn how to make apps for 77 00:04:10,090 --> 00:04:14,360 iPhones for example would mean learning Swift and coding and X Code, what you 78 00:04:14,360 --> 00:04:18,140 should take away from this is that it's definitely not the only way to go. 79 00:04:18,140 --> 00:04:21,380 You can build mobile apps with almost any programming language, 80 00:04:21,380 --> 00:04:24,260 mostly with some tradeoffs and performance and features. 81 00:04:24,260 --> 00:04:28,050 David also asks about mobile development from a hiring perspective. 82 00:04:28,050 --> 00:04:31,650 Is it expected that you know how to create iOS and Android apps? 83 00:04:31,650 --> 00:04:33,770 Now, this really depends on the job. 84 00:04:33,770 --> 00:04:37,090 Most large companies have mobile teams for each platform and 85 00:04:37,090 --> 00:04:39,740 do not expect you to know both iOS and Android. 86 00:04:40,740 --> 00:04:45,850 However, as Jacob Mishkin points out, React Native is also an option. 87 00:04:45,850 --> 00:04:49,400 If you don't know about React Native, it's a newish cross-compiler, and 88 00:04:49,400 --> 00:04:50,430 much like Xamarin, 89 00:04:50,430 --> 00:04:55,650 it allows you to write code that will produce both native Android and iOS apps. 90 00:04:55,650 --> 00:04:58,600 These React Native apps are similar to what a React Native web 91 00:04:58,600 --> 00:05:00,130 developer would create. 92 00:05:00,130 --> 00:05:02,680 So sorry, it means you gotta learn a little bit more. 93 00:05:02,680 --> 00:05:06,640 However, companies might be slow to embrace cross-compilers, 94 00:05:06,640 --> 00:05:09,200 especially if they already have apps in place. 95 00:05:09,200 --> 00:05:12,358 Native app development isn't going away any time soon, especially for 96 00:05:12,358 --> 00:05:13,244 larger companies. 97 00:05:13,244 --> 00:05:16,345 But, we are seeing an increasing amount of job postings for 98 00:05:16,345 --> 00:05:20,563 this cross-platform development, which, in addition to student interest, 99 00:05:20,563 --> 00:05:23,700 always helps drive content creation here. 100 00:05:23,700 --> 00:05:27,060 And personally, I think that makes sense from a business perspective. 101 00:05:27,060 --> 00:05:31,670 If you don't need to maintain two code bases and two teams of developers, 102 00:05:31,670 --> 00:05:35,470 this cross-platform type of application building makes a lot of sense. 103 00:05:35,470 --> 00:05:39,770 The second part of David's question revolves around freelancing and learning. 104 00:05:39,770 --> 00:05:43,330 I do suggest that you learn a native platform so you get a feeling for 105 00:05:43,330 --> 00:05:44,700 what it's capable of. 106 00:05:44,700 --> 00:05:47,690 It will help you to understand these cross-compiler tools better. 107 00:05:47,690 --> 00:05:52,725 So since you're already on the job of Kotlin track and enjoying it, keep at it. 108 00:05:52,725 --> 00:05:56,425 And remember, progressive web apps are gaining in popularity and 109 00:05:56,425 --> 00:05:59,305 might be enough for what your freelancing clients need. 110 00:05:59,305 --> 00:06:00,985 Make sure you check those out too. 111 00:06:00,985 --> 00:06:02,965 Thanks for asking such a great question David, 112 00:06:02,965 --> 00:06:04,635 I know others are wondering the same thing. 113 00:06:05,655 --> 00:06:09,250 Eddie Aguilar asked a question I know a lot of you have been wondering. 114 00:06:09,250 --> 00:06:10,927 Where can I get that hoodie? 115 00:06:10,927 --> 00:06:13,765 Now, you'll notice here that Molly kinda trolled in, and 116 00:06:13,765 --> 00:06:16,010 telling him how comfortable they were. 117 00:06:16,010 --> 00:06:19,520 But then she went on to say, there's going to be an online store. 118 00:06:19,520 --> 00:06:21,750 Now this is the first time I've ever heard of it. 119 00:06:21,750 --> 00:06:25,205 Let me go do some spy work and see if I can get some more deets about this. 120 00:06:25,205 --> 00:06:26,932 [MUSIC] 121 00:06:26,932 --> 00:06:27,980 Let's go see Molly. 122 00:06:27,980 --> 00:06:30,470 She's right over here. 123 00:06:30,470 --> 00:06:32,100 Hey, Molly. 124 00:06:32,100 --> 00:06:33,520 >> Hey. Hey, who is this? 125 00:06:33,520 --> 00:06:35,910 Is this for the- >> These are sweatshirts for 126 00:06:35,910 --> 00:06:36,820 the online store. 127 00:06:36,820 --> 00:06:37,925 >> The online store? 128 00:06:37,925 --> 00:06:38,460 >> Mm-hmm. 129 00:06:38,460 --> 00:06:41,070 >> That's so awesome, we're gonna do it. 130 00:06:41,070 --> 00:06:43,340 >> Yeah, I think so, yeah. 131 00:06:43,340 --> 00:06:45,360 >> You didn't seem very certain. 132 00:06:45,360 --> 00:06:48,350 >> Well, it's kind of up to Watson, not me. 133 00:06:48,350 --> 00:06:49,690 >> Watson? 134 00:06:49,690 --> 00:06:51,985 >> Yeah. >> How certain are we that we're gonna do 135 00:06:51,985 --> 00:06:53,427 this online store thing? 136 00:06:53,427 --> 00:06:56,640 >> 95%. >> 95%, you heard it here. 137 00:06:56,640 --> 00:06:57,792 [MUSIC] 138 00:06:57,792 --> 00:07:01,842 Thanks for watching the Treehouse Show. 139 00:07:01,842 --> 00:07:04,558 To get in touch with the show, reach out to me on Twitter or 140 00:07:04,558 --> 00:07:06,834 email the show at show@teamtreehouse.com. 141 00:07:06,834 --> 00:07:08,039 See you in the community.