1 00:00:00,000 --> 00:00:03,330 [male narrator] In this day and age, mobile devices are more than just phones. 2 00:00:03,330 --> 00:00:05,790 We use them not only to communicate with one another 3 00:00:05,790 --> 00:00:09,810 but to conduct business, get our news, enjoy hours of entertainment— 4 00:00:09,810 --> 00:00:11,980 movies, music, and games. 5 00:00:11,980 --> 00:00:16,640 The latest smartphones are devices capable of running sophisticated applications 6 00:00:16,640 --> 00:00:20,020 and both consumers and developers have embraced this world. 7 00:00:20,020 --> 00:00:24,260 Mobile development is now one of the fastest growing areas of software development. 8 00:00:24,260 --> 00:00:28,180 I'm assuming you're watching this video because you're interested in mobile development. 9 00:00:28,180 --> 00:00:32,820 You want to know how to create, deploy, and maintain powerful apps 10 00:00:32,820 --> 00:00:34,120 on popular platforms. 11 00:00:34,120 --> 00:00:36,280 Let's start by taking a look at the industry. 12 00:00:36,280 --> 00:00:39,800 The mobile industry is growing at a very high pace 13 00:00:39,800 --> 00:00:42,590 and is predicted to grow even more as mobile phone usage 14 00:00:42,590 --> 00:00:44,540 increases around the world. 15 00:00:44,540 --> 00:00:47,120 While everyone is familiar with the 2 major platforms, 16 00:00:47,120 --> 00:00:50,120 Android and iOS, there is certainly more in the world. 17 00:00:50,120 --> 00:00:52,520 Just not as popular or widespread. 18 00:00:52,520 --> 00:00:54,820 When you think of mobile application development, 19 00:00:54,820 --> 00:00:59,990 you, or I at least, picture successful apps like path or angry birds, 20 00:00:59,990 --> 00:01:02,490 cool consumer apps that we use everyday. 21 00:01:02,490 --> 00:01:04,330 That's only 1 side of the market. 22 00:01:04,330 --> 00:01:07,750 Mobile application develpoment can involve freelancing and building 23 00:01:07,750 --> 00:01:11,630 apps on your own, building apps as part of a dedicated mobile team, 24 00:01:11,630 --> 00:01:13,250 like path or instagram, or even 25 00:01:13,250 --> 00:01:16,340 working in the mobile department of a larger corporation— 26 00:01:16,340 --> 00:01:19,040 implementing their customers needs into mobile solutions. 27 00:01:19,040 --> 00:01:22,980 Let's talk to our very own mobile development teachers Ahmet and Ben, 28 00:01:22,980 --> 00:01:25,660 to hear their perspectives on this exciting industry. 29 00:01:25,660 --> 00:01:28,660 [how did you get started in mobile development?] 30 00:01:28,660 --> 00:01:35,670 [Ahmet] I actually got started the year before the iPhone and Android came about. 31 00:01:35,670 --> 00:01:39,310 I was doing my own start-up and we had this grand idea 32 00:01:39,310 --> 00:01:42,520 that we wanted to bring to several different forums 33 00:01:42,520 --> 00:01:45,140 and back then there were all these feature phones. 34 00:01:45,140 --> 00:01:46,770 They weren't the smartphones. 35 00:01:46,770 --> 00:01:53,120 So it was like the Nokia platform with Simbian and different versions of Simbian. 36 00:01:53,120 --> 00:02:00,020 You had different OS's out there, so we had this really ambitious task, 37 00:02:00,020 --> 00:02:05,350 to bring apps to all these different devices 38 00:02:05,350 --> 00:02:07,120 and it was a monstrous task— 39 00:02:07,120 --> 00:02:09,570 trying to raise funding, nothing was happening. 40 00:02:09,570 --> 00:02:12,810 Then the iPhone and Android came out. 41 00:02:12,810 --> 00:02:17,700 And it seemed like a no-brainer with the app ecosystem. 42 00:02:17,700 --> 00:02:21,800 Initially there wasn't an app ecosystem because they didn't come with apps 43 00:02:21,800 --> 00:02:23,700 or NSDK. 44 00:02:23,700 --> 00:02:25,630 But once they did launch that, 45 00:02:25,630 --> 00:02:31,910 this whole idea of a developer being able to target a consumer directly 46 00:02:31,910 --> 00:02:36,230 without even having to worry about how their apps are distributed, 47 00:02:36,230 --> 00:02:39,070 was a huge paradigm shift in the mobile industry. 48 00:02:39,070 --> 00:02:43,750 It seemed like a no-brainer to jump on those 2 platforms. 49 00:02:43,750 --> 00:02:46,100 [Ben] My path was a little more roundabout. 50 00:02:46,100 --> 00:02:49,160 I was already doing software development for a big company. 51 00:02:49,160 --> 00:02:52,720 I was excited when the phones came out, 52 00:02:52,720 --> 00:02:56,770 but I didn't really think about developing apps until a little bit later. 53 00:02:56,770 --> 00:02:58,780 So we had an iPhone first, 54 00:02:58,780 --> 00:03:02,140 and it was amazing and I thought it was exciting, 55 00:03:02,140 --> 00:03:07,930 but I didn't really think that I could do it until a little bit later. 56 00:03:07,930 --> 00:03:11,060 Then at my previous job, they sent out an e-mail 57 00:03:11,060 --> 00:03:15,340 they wanted to establish who had skills with mobile development in the company. 58 00:03:15,340 --> 00:03:17,780 Because it was brand new, they wanted to 59 00:03:17,780 --> 00:03:20,210 put out some apps, they wanted to have teams that could work on it. 60 00:03:20,210 --> 00:03:23,940 They asked who had the mobile skills. 61 00:03:23,940 --> 00:03:26,510 I didn't, but I did have skills in Java, 62 00:03:26,510 --> 00:03:30,150 and I had just started to look into mobile development on my own personal time. 63 00:03:30,150 --> 00:03:35,520 So, I responded and said, "I don't know Android development, but I know Java," 64 00:03:35,520 --> 00:03:37,490 "and I'm looking into it, and I really want to do it," 65 00:03:37,490 --> 00:03:40,330 "so mark me down as someone who is really interested." 66 00:03:40,330 --> 00:03:42,390 Then everytime I met with my manager— 67 00:03:42,390 --> 00:03:45,780 we had meetings every 3 weeks or something like that, 68 00:03:45,780 --> 00:03:49,500 everytime I would bring it up, and I would say, "Is there anyting in mobile?" 69 00:03:49,500 --> 00:03:51,500 "Can I do anything?" 70 00:03:51,500 --> 00:03:53,800 And the timing worked out, I got off a big project. 71 00:03:53,800 --> 00:03:55,950 And they were looking for people to onboard 72 00:03:55,950 --> 00:03:59,210 to train and to establish a new team. 73 00:03:59,210 --> 00:04:02,170 I got to join that team. 74 00:04:02,170 --> 00:04:06,250 and go to some training, work sith some really smart people, and that's how I got started. 75 00:04:06,250 --> 00:04:09,880 [what was your first experience like?] 76 00:04:09,880 --> 00:04:14,340 [Ben] So my first actual project was refactoring existing apps. 77 00:04:14,340 --> 00:04:18,899 What the company had done was outsource their first round of apps 78 00:04:18,899 --> 00:04:22,100 and we got this really awful code. 79 00:04:22,100 --> 00:04:28,090 I got to dive in and I had to make sure everything still worked the same and looked the same, 80 00:04:28,090 --> 00:04:31,400 but I had to change all the guts behind the scenes, 81 00:04:31,400 --> 00:04:33,400 which was actually a great way to learn. 82 00:04:33,400 --> 00:04:39,000 You have to think about a mobile device differently than a regular computer or a web app. 83 00:04:39,000 --> 00:04:41,900 That was the biggest hurdle—the syntax wasn't so bad, 84 00:04:41,900 --> 00:04:44,150 again because I knew Java. 85 00:04:44,150 --> 00:04:47,620 But I cobbled together resources for learning 86 00:04:47,620 --> 00:04:52,190 online developer documentation and some books. 87 00:04:52,190 --> 00:04:56,000 Really if there had been a resource like treehouse around when I started 88 00:04:56,000 --> 00:04:58,000 it would have been ideal. 89 00:04:58,000 --> 00:05:01,910 [Ahmet] Absolutely—it would have definitely made things a lot easier for both of us. 90 00:05:01,910 --> 00:05:04,270 And probably the whold community. 91 00:05:04,270 --> 00:05:10,360 So my first experience was —it was crazy because I was running a bootstrap start-up. 92 00:05:10,360 --> 00:05:14,000 So I had no experiene with the Mac at all. 93 00:05:14,000 --> 00:05:17,750 And I wanted to build an iPhone app really desparately. 94 00:05:17,750 --> 00:05:23,500 So I build a hackentosh, which is basically taking a Windows PC and installing Mac OS 10. 95 00:05:23,500 --> 00:05:28,730 It was painful, but I was actually able to build my first app 96 00:05:28,730 --> 00:05:32,320 and deploy it to the app store using a hackentosh. 97 00:05:32,320 --> 00:05:35,440 I wa amazed that I was able to do that. 98 00:05:35,440 --> 00:05:38,320 The whole process was a little painful, 99 00:05:38,320 --> 00:05:42,660 I always had this approach of hack first, understand later. 100 00:05:42,660 --> 00:05:44,520 So when I built the hackentosh, I just started 101 00:05:44,520 --> 00:05:47,160 I just started building apps. 102 00:05:47,160 --> 00:05:52,160 I would build the app, understand it, 103 00:05:52,160 --> 00:05:54,880 then scrap the idea and start again, 104 00:05:54,880 --> 00:05:59,260 because I had a better understanding so I could build it better the second time around, 105 00:05:59,260 --> 00:06:01,380 and the third itiration, and the fourth. 106 00:06:01,380 --> 00:06:04,570 I kind of got it right, and I understood what I was doing. 107 00:06:04,570 --> 00:06:08,320 [what skills do you need to work in the mobile development industry?] 108 00:06:08,320 --> 00:06:12,870 [Ahmet] So in terms of learning the language, and the tools, and the SDK's— 109 00:06:12,870 --> 00:06:17,460 The language was a higher barrier to entry back then, because 110 00:06:17,460 --> 00:06:21,480 you had to understand these mechanics of memory management. 111 00:06:21,480 --> 00:06:23,940 I came from a Java background, so 112 00:06:23,940 --> 00:06:26,990 wrapping my head around that was a little hard. 113 00:06:26,990 --> 00:06:28,730 It was really tough because you had these 114 00:06:28,730 --> 00:06:35,790 accounts that you had to maintain, the retain counts, and if you released memory or didn't release memory. 115 00:06:35,790 --> 00:06:38,420 So that was the big hump back then. 116 00:06:38,420 --> 00:06:42,060 Of course the documentation has always been good, 117 00:06:42,060 --> 00:06:45,040 but now it's a lot better than it was. 118 00:06:45,040 --> 00:06:50,110 Lastly, navigating the SDK—the SDK is really vast. 119 00:06:50,110 --> 00:06:53,650 Even though it was a first itiration, they had a vast SDK. 120 00:06:53,650 --> 00:06:56,920 So I started with a project in mind, so we had to build. 121 00:06:56,920 --> 00:07:00,920 We were an app company, so we were building with these apps in mind. 122 00:07:00,920 --> 00:07:05,540 So it started with this app and I started learning the pieces of the SDK 123 00:07:05,540 --> 00:07:08,190 that would help me get towards that end goal, 124 00:07:08,190 --> 00:07:11,840 rather than just trying to learn everything the SDK had to offer 125 00:07:11,840 --> 00:07:14,000 and then going forward and building th app. 126 00:07:14,000 --> 00:07:15,810 And I thought that was a smart approach. 127 00:07:15,810 --> 00:07:19,010 I still think it's a smart approach for any beginner. 128 00:07:19,010 --> 00:07:22,370 [Ben] I completely agree, and it's similar to my experience. 129 00:07:22,370 --> 00:07:26,840 I went through some tutorials and I did some stuff that I didn't understand. 130 00:07:26,840 --> 00:07:28,880 Like you mentioned kind of hacking your way through at first. 131 00:07:28,880 --> 00:07:31,640 Then I came back and I tried to think of some projects 132 00:07:31,640 --> 00:07:33,410 I wanted to work on myself. 133 00:07:33,410 --> 00:07:37,170 My work project was a big monolythic refactoring project, 134 00:07:37,170 --> 00:07:41,850 but in my own time I wanted to build some small apps that did simple stuff, 135 00:07:41,850 --> 00:07:44,540 but I knew it would apply to lots of other stuff I worked on. 136 00:07:44,540 --> 00:07:47,880 So I remember consuming services from the web, 137 00:07:47,880 --> 00:07:50,710 doing a google search, using the Twitter API's, 138 00:07:50,710 --> 00:07:55,590 trying to get some data and then display it in a meaningful way 139 00:07:55,590 --> 00:08:00,140 to learn some of the UI widgets and controls on both platforms. 140 00:08:00,140 --> 00:08:02,000 I did the same project in both platforms. 141 00:08:02,000 --> 00:08:04,000 [Ahmet] Oh that helps a lot. 142 00:08:04,000 --> 00:08:07,710 [Ben] I did iOS and Android so I could kind of compare how they worked. 143 00:08:07,710 --> 00:08:11,080 How some things were similar and what was different. 144 00:08:11,080 --> 00:08:16,750 I really believe that the repetition and studying up and keep practicing it— 145 00:08:16,750 --> 00:08:18,810 Things start to click and it does start to make sense. 146 00:08:18,810 --> 00:08:22,440 [Ahmet] Right. Whereas iOS you need 3 lines of code 147 00:08:22,440 --> 00:08:25,530 and Android you need 20 lines of code to accomplish the same task. 148 00:08:25,530 --> 00:08:27,510 [Ben] There are some convenient helper methods on that one 149 00:08:27,510 --> 00:08:29,540 that they are missing in the Android SDK. 150 00:08:29,540 --> 00:08:32,730 [how do you keep up with the pace of the industry?] 151 00:08:32,730 --> 00:08:34,970 [Ben] It is hard to stay up to date because 152 00:08:34,970 --> 00:08:39,039 everything about our industry is changing month by month. 153 00:08:39,039 --> 00:08:42,309 Things have settled down a little bit more recently. 154 00:08:42,309 --> 00:08:45,980 Like when the devices and the SDK's were first released, it was major changed coming through. 155 00:08:45,980 --> 00:08:48,330 Now things are relatively stable. 156 00:08:48,330 --> 00:08:53,880 Still there are so many new technologies, new apps, new open source libraries you can use, 157 00:08:53,880 --> 00:08:56,980 new design guidelines, and best practices. 158 00:08:56,980 --> 00:08:58,640 It's hard to stay up to date. 159 00:08:58,640 --> 00:09:03,530 What I try and do is suck off of the knowledge of others. 160 00:09:03,530 --> 00:09:08,170 I've got some really smart people on Twitter that I follow, 161 00:09:08,170 --> 00:09:12,770 other developers that I talk to, attend events, conferences, 162 00:09:12,770 --> 00:09:19,300 That way I can get a pulse of the news and what's gaining in popularity, 163 00:09:19,300 --> 00:09:20,600 and what mistakes people have made. 164 00:09:20,600 --> 00:09:24,050 Then I try and incorporate that in side projects 165 00:09:24,050 --> 00:09:26,490 where if there is soething new I want to try out 166 00:09:26,490 --> 00:09:29,060 I'll do a small app or a small project, 167 00:09:29,060 --> 00:09:32,310 just to learn to make sure that I understand something 168 00:09:32,310 --> 00:09:34,410 or if I need to apply it elsewhere. 169 00:09:34,410 --> 00:09:37,200 [Ahmet] I completely agree with everything you're saying, 170 00:09:37,200 --> 00:09:43,050 because the pace of the industry is totally different from anything that's out there, 171 00:09:43,050 --> 00:09:46,460 especially the mobile pace, because devices are changing every year, 172 00:09:46,460 --> 00:09:49,560 the OS is being upgraded, they're adding new features. 173 00:09:49,560 --> 00:09:53,290 Even though the platform is a lot more stable than it used to be, 174 00:09:53,290 --> 00:09:56,330 because they're not putting out major changes to the platform. 175 00:09:56,330 --> 00:10:00,170 Still there is so much to keep up with. 176 00:10:00,170 --> 00:10:03,890 I always find that whenever a new version is released 177 00:10:03,890 --> 00:10:07,270 I take the big features and try to build an app around that. 178 00:10:07,270 --> 00:10:09,690 So you can learn how those features work 179 00:10:09,690 --> 00:10:12,130 and what the nuances are of those features, 180 00:10:12,130 --> 00:10:15,660 because until you buckle down and actually build something, 181 00:10:15,660 --> 00:10:20,240 reading the API differences or just reading the documentation 182 00:10:20,240 --> 00:10:22,000 is not enough. 183 00:10:22,000 --> 00:10:25,110 Or even watching a video, because all the nuances 184 00:10:25,110 --> 00:10:27,000 are when you're actually building an app. 185 00:10:27,000 --> 00:10:30,000 That's what I've found is the most helpful for me, 186 00:10:30,000 --> 00:10:32,230 just come up with an app, whatever it is, 187 00:10:32,230 --> 00:10:35,500 it could be something simple or something a little complex 188 00:10:35,500 --> 00:10:37,910 but it incorporates all those features. 189 00:10:37,910 --> 00:10:40,980 So that you're pushing yourself always to learn. 190 00:10:40,980 --> 00:10:43,360 That's the great thing about this industry. 191 00:10:43,360 --> 00:10:46,170 You're always learning, there's never a dull moment. 192 00:10:46,170 --> 00:10:49,860 [do you enjoy your job as a mobile developer?] 193 00:10:49,860 --> 00:10:52,710 [Ben] Before, I was talking about how when I got into mobile developement 194 00:10:52,710 --> 00:10:54,920 I pushed ot get into it. 195 00:10:54,920 --> 00:11:00,610 Because there was something magical about working on that handhead device 196 00:11:00,610 --> 00:11:02,770 that you could show anybody, anywhere— 197 00:11:02,770 --> 00:11:05,480 that you could put on the app store and have anybody download. 198 00:11:05,480 --> 00:11:10,980 You've got that with the web, but with the phones themselves 199 00:11:10,980 --> 00:11:14,420 or tablets, with all the features that are built in, 200 00:11:14,420 --> 00:11:18,730 everything you can do with them—it's really like your playing with technology from the future. 201 00:11:18,730 --> 00:11:21,540 Even the most simple things still give me pleasure. 202 00:11:21,540 --> 00:11:23,280 To get things to work and to show people, 203 00:11:23,280 --> 00:11:27,000 whether it's silly or complex, whatever it is. 204 00:11:27,000 --> 00:11:31,510 There's a feeling of accomplishment that you're doing something cool. 205 00:11:31,510 --> 00:11:34,050 We talked about how the industry is constantly changing. 206 00:11:34,050 --> 00:11:36,000 There's just so many cool things coming out. 207 00:11:36,000 --> 00:11:38,480 It's like, "I want to play with that, I want to do that, I want to copy that." 208 00:11:38,480 --> 00:11:41,070 There's always so many interesting things to work on. 209 00:11:41,070 --> 00:11:43,530 It never gets boring, and I'm so glad I got into this field. 210 00:11:43,530 --> 00:11:46,960 [Ahmet] I feel like we're always pushing the boundary. 211 00:11:46,960 --> 00:11:50,430 If anyone's pushing the boundary, they are pushing it on mobile devices. 212 00:11:50,430 --> 00:11:53,180 Because you have all these intricate features 213 00:11:53,180 --> 00:11:55,300 and intricate functionality. 214 00:11:55,300 --> 00:11:59,590 The first time I saw t his app from a company called Smule, 215 00:11:59,590 --> 00:12:03,180 where you can blow into the phone and play music. 216 00:12:03,180 --> 00:12:07,410 I was blown away, I could never imagine you could do that with a phone. 217 00:12:07,410 --> 00:12:10,180 And here you are using a phone as a flute. 218 00:12:10,180 --> 00:12:12,140 It was a mind-blowing moment. 219 00:12:12,140 --> 00:12:15,620 That's what got me excited about mobile development. 220 00:12:15,620 --> 00:12:19,240 The limit is my imagination really. 221 00:12:19,240 --> 00:12:22,430 I can create whatever I can imagine. 222 00:12:22,430 --> 00:12:26,980 That's true—look at all these beautiful games and all these music apps. 223 00:12:26,980 --> 00:12:30,490 [Ben] There is just so many creative peoplein the industry. 224 00:12:30,490 --> 00:12:33,370 Just the chance to work with these people because they come up with such cool ideas. 225 00:12:33,370 --> 00:12:36,880 [Ahmet] And the barrier to entry is so low. 226 00:12:36,880 --> 00:12:40,410 All you have to do is put your mind to it. 227 00:12:40,410 --> 00:12:43,010 Learn the technology and put it out there. 228 00:12:43,010 --> 00:12:46,850 You don't need a huge team to create an innovative app. 229 00:12:46,850 --> 00:12:49,060 That's what is amazing. 230 00:12:49,060 --> 00:12:53,910 And you have a ready audience, you have people there ready to buy your creation— 231 00:12:53,910 --> 00:12:55,580 if it's worth it. 232 00:12:55,580 --> 00:12:59,150 [male narrator] Mobile deveopment is a very lucrative profession. 233 00:12:59,150 --> 00:13:02,960 For an entry-level position, you can earn around $60,000 234 00:13:02,960 --> 00:13:06,670 all the way up to $150,000 as an experienced developer. 235 00:13:06,670 --> 00:13:09,090 That's what you can earn as a salary. 236 00:13:09,090 --> 00:13:11,870 That doesn't take into account money you could make freelancing, 237 00:13:11,870 --> 00:13:14,180 or running a successful company on your own. 238 00:13:14,180 --> 00:13:18,050 The flourishing ecosystems in both the iOS and Android platforms, 239 00:13:18,050 --> 00:13:21,130 have given rise to countless entrepreneurial pursuits. 240 00:13:21,130 --> 00:13:24,880 With successes like doodlejump turning 2 brothers into millionaires, 241 00:13:24,880 --> 00:13:30,100 and angry birds bringing in over $200 million in revenue in 2012 alone, 242 00:13:30,100 --> 00:13:34,760 mobile app development is a very exciting industry with a lot of promise.