Coding 101 40 (Transcript)
Father Robert Ballecer: On this episode of Coding 101, it’s the end of our build an app module. It’s time to get C Sharp.
Netcasts you love, from people you trust. This is TWiT! Bandwidth for Coding 101 is provided by CacheFly. At chachefly.com.
This episode of Coding 101 is brought to you by Lynda.com. Lynda is an easy and affordable way to help you learn. Instantly stream thousands of courses created by experts on business, software, web development, graphic design and more. For a free trail visit Lynda.com/c101. That’s Lynda.com/c101.
Fr. Robert: Welcome to Coding 101. It’s the show where we show you all the ins and outs, the secrets of the code masters. I’m father Robert Ballecer, the digital Jesuit, here to introduce you to our code warrior, Mr. Lou Maresca. Lou, it’s great to have you back, how have you been?
Lou Maresca: Hey Padre, fantastic, thanks for having me back.
Fr. Robert: This is an exciting day because we get to close up our first ever module. Mini module where we’re actually showing people how to do an app from start to finish. The last three episodes have all been about putting together a task manager in C sharp. The idea was go through the logic. What kind of features do we need? What do we need the program to do? Then actually show you how you build things in from an API into the view model and finally into the view. So today we’re going to be going through what, a little bit of Xamarin?
Lou: That’s right, yeah. We’re going to take the app that we built the last two or three episodes and we’re going to take that and put that in Xamarin and then compile apps. So we’re going to show you the Windows phone version of it and then the Android version of it.
Fr. Robert: And this really is the promise of programming in a modern language. The idea of being able to code once and compile multiple times for different operating systems. And this is also, if we may toot our own horn here, one of the big reasons you want to go with the view model style of programming. Because you can make that back end, and then just change the view based on whatever operating system you’re finally going to run your app on top of. But Lou, before we get there do you think maybe we could take a look at some of the programming examples from our G+ community?
Lou: Yeah let’s do that, there’s so me really good ones out there today.
Fr. Robert: I know, I love it. And actually, both of the ones I chose today do come from Joe, he’s been in there forever, he’s fantastic, he’s a lot of fun to watch because he likes to take what we give to our audience, change it just a little bit so that he can demonstrate a point, and then throw it back to us. So the first one is also from the Google+ group, its simple data binding. What he wanted to do was give us a way to use a slider control to show how data can be bound. The way that he has programmed this is, this little slider here is tied to a number. It’s not just changing the number when we move the slider. It’s got to go back to the module in order to take the input from the screen, turn it back into some sort of numerical value and then push it back out to the view. At least that’s how it should work. You can take a look at the code if you like, he’s got the link up on our G+ community, but when I run this, very simply all it does is it allows me to move this and as you can see, the number will increment or decrement based on where that slider will be between 1 and 10. Now Lou, what exactly is going on behind the scene when I have a program like this?
Lou: What it’s basically doing is running the code that’s in the view model, to basically calculate and its then sending back, it’s a two way binding, so it’s then sending back messages to the UI that it needs to update that text field with the new numbers.
Fr. Robert: When I was writing procedural programming back in my college days, there was no real solid data binding, so if you wanted to do something you would move the position of the object and then you’d have to hit calculate in order for it to do it. To give it back to you. This is one of the advantages of data binding. Which is if you tightly bind the view and the view model, we can get instant feedback for the users and that’s really what we’ve come to expect. We won’t do it any other way. Joe also sent us another example, he said okay, now that you’ve got your taste for a simple binding example, why don’t I show you what it looks like if I use a custom made object. So what he came up with is this. He gave us this wonderful XAML interface that allows us to do this. If you go and compile it. Again, this is something that you might see on a modern app or on a modern website. So I can do a task name. I get my task owner and then this is important, because remember, we wanted to have some sort of colander inside of our task manager application. He give me a dropdown. The wonderful thing about this is, this is actually built in. he didn’t have to code this from scratch, this was all built into the C Sharp framework right?
Lou: Yep. That colander controls is there for everybody to use, so it’s pretty easy to use.
Fr. Robert: SO for example I could choose this, and then when I click the show card object properties, again, what it will do is it will take everything that was in the view, it’ll push it back to the view model, the view model will turn it into what you see here as it pushes it back out to the view. Thank you Joe, this is why we love having your examples on the show. Because it really does bring out the individual pieces that we’re trying to teach people was we move through our examples. Now when we come back we’re going to start in on the last segment of our build an app module. Lou is going to show us how to use Xamarin in order to turn all the programming that we’ve been doing into something that actually looks nice, that we might want to install on our mobile device. But before we do that, let’s go ahead and take a moment to thank the sponsor of this episode of Coding 101 and that’s Lynda.com. What is Lynda.com? It is a one stop shop on the internet to find out everything you need to know. And by that, I don’t mean just find out new stuff about new topics about new skills about new software’s, new procedures that you want to learn. I’m talking about a one stop show for new knowledge and for reference material. That’s really the strength of Lynda.com. Lynda.com works directly with industry experts and software companies to provide timely training. Often the same day that new versions or releases hit the market, so that you’ll always be up speed if you’ve got your Lynda.com account. All courses are produced at the highest quality, which means you’re not going to have bad lighting, shaky camera, audio that sounds like your speaking into a toilet paper roll. Lynda understands that if you’re focusing too much on the production values of a lesion, you’re probably not paying attention to the lesson. So although we don’t like to denigrate YouTube videos out there, there is something about learning from a quality source. Tools include searchable transcripts, playlists and certificates of course completion which you can publish to your LinkedIn profile, which is great if you’re a professional who wants potential employers to know what you’ve trained in. whether you’re a beginner or advanced, Lynda.com apps for iOS and Android will meet you at all experience levels. They’ve got one low monthly price of $25, which give you unlimited access to over 100,000 video tutorials and premium plan members can also download project files and practice along with the instructor. And premium members with an annual plan can download courses to watch offline. Which means it can be that perfect reference material, even when you’re not connected to the internet. Lynda.com also has courses on the foundations of programming, getting up and running with C, simple Android development tools and how to teach kids programming with iOS. There’s even a series on programming for non-programmers. But for any software you rely on, Lynda.com can help you stay current with all software updates and learn the ins and outs to be more effective and productive. And we’ve got a special offer for you to access all of these courses for free for seven days. Visit Lynda.com/c101 to try Lynda.com free for seven days. That’s Lynda.com/c101. And we thank Lynda for their support of Coding 101. Now Lou, I wanted to get to this as fast as possible because we always seem to run out of time towards to end of our episodes. We need to turn all this code that we’ve been working on, available on our show notes page, into something that I would actually want to install on my phone or my tablet. How do I do it?
Lou: So one of the things that we want to pay attention to is the UI, it can be as complex as you want, or as simple as you want, the key is you want to keep all of the code that you want to run on your app out of it. So when you have a project like the Windows phone app that I had, the UI should be by itself. You can just construct the UI using the UI manager, UI builder. Put your UI components on there, your list boxes for the tasks and the buttons and the images and all that stuff. But you want to stay away from trying to write any code, anything behind the scenes. And so when you’re hooking things up, like Joe showed, you want to make sure that you’re hooking up those events but using the view model type mechanisms rather than trying to put code in the code behinds.
Fr. Robert: Right. And actually, if you go back to my screen, this is what the code looks like for Joe’s program. This is what actually generates this view, as you can tell, there’s nothing there. All this is, is parameters for how big the box will be, what the fields in the box are named, and that’s it. All the code is stored in other modules elsewhere in the project. And Lou, why do we want to do that? Why is it not okay to just dump all my code in that little design box?
Lou: Honestly, not only does it get confusing, but it also prevents you from maintaining it. It gets really complex. People who do web development, when you’re building HTML objects with your CSS style sheets, it can get really overwhelming and complex with all of that stuff already in there. And then you’re going to put additional logic in there? It just gets way over complex. If you go back to Joe’s example, you’ll see that he actually has, in the text attribute down there, you see he has binding in the path, and then it says name and then binding path owner. So what he’s doing is he’s binding to properties in his code files. And so there’s a name property and an owner property and then when that actual UI renders, it’ll show the data from those actual properties. And that’s exactly what you should be doing to simplify your user interface building that you’re doing.
Fr. Robert: Some of the most nightmare code I’ve ever had to fix, we had a programmer who put some of the logic inside the view. And what happened was we didn’t know that there was code executing in there. So we were trying to push out and we kept getting garbled data going back to the user. And it was because he hadn’t followed the proper model. If you put something executable inside of that last step, it’s just going to mess up anybody who comes after you, probably even mess you up when you come back to your program six months later.
Lou: That’s right. So one thing that I’ll show you the example that I have and then we can go through how to build it. So we had the original portable class library that we built, it had that task manager in there. We had a bunch of logic in there and ill drop it down here. We had get your tasks list, or authenticate the user, get a specific task by an ID. That kind of thing. And so that’s where all the logic lives. That’s the object that kind of handles all that proxing between the Google service and pulling the data and so on. But then I actually built a really simple Windows phone app, and what you’ll see here is the example that the first thing the user is going to see is a button that they’re going to basically click and log in. And you’ll notice that it’s not overly complex, because it’s a bunch of white space in here. But you’ll notice that there’s still a lot of lines of the XAML, the XML for the UI. Even though there’s not logic in there. You’ll notice that I’m actually binding to a click event. So if you were to put a whole bunch of logic in here and a whole bunch of click events and then you have a code behind file and then a lot of code in that code behind file, it gets really complex. My code behind file- if I zoom out- is only like 50 lines long really.
Fr. Robert: Right. and actually if you go back to that window, all this code that you have in here, if you’ve ever done any CSS or HTML programming, it looks a lot like this. You’re defining how it looks, you’re naming fields so that they can be accessed by other elements that are going to use the UI. This program is just designing what you’re going to see on your screen. And again, everything else is going to happen behind the scenes.
Lou: That’s right. Try to keep it simple. For instance, I can get even more complex and build a theming file and all these other files that allow you to make it a little simpler- so then you don’t have the style and stuff in your XAML file too, but for not we just kind of put everything in one file. Like the foreground color and the text and the font style and all that stuff. But you can actually simplify the UI XAML file even more by using theming and template files as well. Right now we didn’t do that, but again, this is just too kind of show how to build a very simple UI and then manufacture that over to Android or iOS too.
Fr. Robert: Right. Now push us forward. Now you’ve got the basic structure of what your iOS app is going to do. We know where the code lives, it’s actually behind the UI, and it’s not part of it. Where do we go from here?
Lou: Sure. One of the things we want to do is show you how to get this to compile and run in the visual studio express version and then into Xamarin. So one of the things that a user noticed was that they had a console app and then the portable class library in one solution. And the problem with that is I guess, the way that visual studio express works is you either get it to use it for the phone or you get it for the desktop. You can’t use it for both. And so both projects that were in there were for both. And so the work around was to remove the console app in there and then go ahead and add the Windows phone version of it.
Fr. Robert: Can you show us how you would do that? Go ahead and guide us through that process.
Lou: Yes, no problem. So one of the things I’ll show you- ill pop open the console app by itself here. And then once we do that you’ll see that there’s actually the console app in the solution viewer. And once I actually go over here, this is already built actually. But normally there would be already a console app in here. And so I would basically click on the console app and I would just go down to remove. And I can remove it out. And we’ll actually give you a project with just the portable class in it, and then you can go ahead and remove that project, the project will already be removed and you won’t have any problem. And then what you want to do is add your universal app. So what I did was, you can click new project, and what’ll actually pop up is all the templates. And if you already installed Xamarin Studio, which you can get from Xamarin.com, you’ll notice in here that there’s several other projects that don’t look familiar. For instance Android, iOS and things that you can build for an iPad. You can build it for any versions of Android that you can imagine. And it gives you templates for those. So what you can do- another thing I can also do is add what we call a universal store app too. And that’s what I did. I added a universal store app, and that allows me to not only add a tablet version for Windows store, but also a phone version. So what you’ll get is these two guys right here, you’ll get a Windows phone empty project and a Windows tablet empty project.
Fr. Robert: Nice.
Lou: So once you have that, now you have a- so not only are you starting to build your Windows phone and Windows tablet version- you notice I still only have this portable class—so next thing you want to do is click on the properties of this project and you’ll notice it gives me my portable class library assembly name and then what we’re going to target. So this is really important because if you’re not targeting the right stuff, it’s not going to work. So what you need to do is tell it yes, I do want to target it for .net45, I want to target it for Windows store app and Windows 8.1, I want to target it for Windows phone app Windows 8.1, but I also want to target it for Android and iOS. And so that’ll make it so the compiler will kind of emit the Xamarin versions of these as well.
Fr. Robert: Right. Well, it’s just going to go through your code and make sure that all the little subtle changes are made so that whatever commands you’re using will execute on each OS.
Lou: Right, exactly. You’re actually going to see something interesting down here, and I’m glad this happened because everyone can kind of see what you can do when this happens. So you’re getting an error here saying that the nugget package installed is not current. Which means that you should probably go and update it, because the ones that Xamarin are using are probably newer and you need to update yours. So what you can do is kind of go over to all your projects here or go up to tools-packet manager here. And you can go to the ones that you have installed. And you’ll notice that there’s the Microsoft VCL components. And you can actually manage that and upgrade that. But the one that they want is called Microsoft VCL. So you can go and find Microsoft VCL. And that’s for online. Microsoft VCL, and then you want to install the one that comes up here. And then once you install that one, it will actually add all of the appropriate files and this will kind of go away. What you’ll get is this guy right here that actually has the appropriate stuff in here. So you have the Microsoft VCL, which is the base class library, and then all the other APIs that you already have in here. And then you can go start building your interface. Once you’re done with that though, this is the cool part. I’m going to switch from Visual Studio to Xamarin. And Xamarin Studio you can get from xamarin.com. And what you’re going to see here is this guy in here. It kind of looks like a version of Visual Studio or Eclipse, if you’ve ever used Eclipse before, on Android. And you can kind of jump in and create a new solution, you can do whatever you want. What I’m going to do is just open up what I already have. Which is this task console application we’ve already built. And what you’ll notice in here is I already have my portable class library and I already have my Windows phone and Windows. You notice those kind of get greyed out and they’re saying you can’t build that in here. But what you can do is do this Android app. And so what I did here is you can kind of go and go to project and click add packages and you can actually add an Android app in here. You can add iOS or Android and you can create an Android app in here. And what you’ll get is kind of a default view. And so now what you have to do is now you can basically reference in here your tasks library that you already have. So you check the box right here in references and you hit go. And now you are actually referencing from your Android project, the PCL. The portable class library that you built. So basically it automatically hooks it up for you. So now you hit ok, and now boom, my Android is now referencing the tasks library. And so now that task manager that’s inside of there, I can use. So that makes it super powerful because now I wrote the code in C Sharp, but I’m going to do it in Android.
Fr. Robert: There are some people who are glossing over right now. What you’ve just shown us is you have been able to take software, programs that you’ve been writing in C Sharp, and by bringing it to Xamarin, Xamarin now looks at it and says oh, okay, this applies to this, this applies to this, now go ahead and use it in Android.
Lou: That’s right. And honestly there’s not magic here. This is exactly how easy it is. I haven’t done anything ahead of time. You basically just open the project in Xamarin studios if you’ve got the lastet one it should match your Visual Studio. You open the guy up, and then you can basically add an Android version of that app. Now the key here is the UI is not going to be done. So that’s kind of where you have to go in and rebuild the UI components. So that’s why the simpler that you do it, the easier- because you have to use Android versions of those kinds of controls. You don’t get that for free, but there is a version of Xamarin called Xamarin forms, which you actually pay for. And what they can do is they can take your Windows version and compile your Windows UI XAML and actually make an Android version of it. So that makes it so that you can just build a UI once and they can kind of build it up for you for Android and iOS.
Fr. Robert: Yeah. Basically for the purpose of Coding 101, if you are just testing it, get the free version. It’s not going to cost you anything. It’s only when you start to get into professional app development, when you have something you’re going to want to sell, then it’s going to start costing you money. But it’s a great tool to have in your toolbox.
Lou: Right. so the way they do it for free, is they actually make it so that if your package that you’re deploying to the platform, the actual C Sharp or dot net package you’re compiling, if its smaller, than you can do it for free and use their tools for free. And the way they do that is they get you to kind of test it out and utilize it. Some people have actually built apps that are so small but still are really cool, and they’re still able to use it for free. So that’s kind of the key. If you can do really good job of making sure your logic is really small, you can still use it for free.
Fr. Robert: So remember folks, small apps are better.
Lou: That’s right. Small and useful apps.
Fr. Robert: All right, take us through. So now we’re in Xamarin and its now recognized all my libraries, has brought over my code, and now I get to design my app for Android, how do I do that?
Lou: So they also make it super easy. You’ll see underneath resources, so this is kind of what the project looks like up front. You have all these folders. And we won’t go through all of what the folders are, but what we want to do is, we have what we call the main activity. You notice again it’s still a C Sharp file. It’s a dot CS file and this is just the out of the box stuff that you get in here, this code. And you’ll notice it has an on create method and it’s just an event when you’re Android app loads up for the first time it’s going to go unload what we call the main window. And so its saying the main window is inside a resource, layout, main. So let’s go look in there. So resources, layout, and there’s main right there. So let’s go ahead and open that guy up. And you’ll notice the first thing you’ll see is it’ll actually render an Android version of it. And you can change the orientation, you can change what device, Nexus, Galaxy Nexus, and Android TV. Whichever one you want. You can actually customize it to using the AVD manager. You actually have to install the Android SDK. Which Xamarin will do for you? And you can go and create new devices, using their tool in here. How much ram it has and how much internal storage.
Fr. Robert: Let’s stay with something that’s in the box. Like Nexus 4, let’s go with that.
Lou: Yep. So, Nexus 4! And then you want to make sure you choose the right version. Right now there is support for Android Lollipop, but we could go all the way down to what the norm is today. I think its Android 4.4 or 4.4.4. So I’m going to go ahead and do that. And again, all languages and it actually allows you to specify what mode you want it to be in. right now we just want normal mode. There’s no carmo or anything like that. Then over here to the right you have a toolbox. So you can actually grab a button, drag it onto the screen. We already have a button here already and you’ll notice it says something. So what I can do is type in like “log in to google” and now I have that going on. And I can actually hook up an event to- you can click on behavior over here- and I can hook up the ability on the click event down here, on click, hook it up to my tasks class here. So I can go to twit.tvcoding101.tasksmanager.
Fr. Robert: And all you’re doing right now is tying elements inside of this. This is the view. So it’s the actual screen that someone would be seeing on their device. To methods and processes that you have in the view model. So you’re going back into the view model and saying I need this button to activate something over here and I need this field, text box, to be filled by the view model and that’s how you bind them.
Lou: Right. And so the way that Xamarin works is they have this ability, you can go to the content or you can go to the source. And again, the source looks very familiar to the XAML version of it. As you can tell, it’s very familiar. Again, it prefixes it with Android, but it’s very familiar. This is kind of the key here. You’re still building the UI similar to the way Visual Studio builds it, but you get to kind of do it through their special studio. Once you hook that up though, now all you have to do is build it. And if you specify the device up here. It’s telling me again the VCL library is the incorrect one. So you want to go ahead and update it. But what you want to do is once you’ve updated that one like we did before, once you hit build you actually see the Android emulator pop up, and then boom, you’ve got your app running in there. So it’s very, very simple to kind of hook this up. This is just going to implement the log in capabilities of the app, but again, you would go in here and add a list box and I can go down here and find the list view and I can drag that on here and the list view would allow me to basically list out my tasks once I have it. I can also go ahead and add additional views if I wanted to do to that. So I can add additional layouts. So add a view file, in a form and it could be a content page and I could call it tasks view. And hit new. And now I actually have like a task view. And again, it’s a XAML file. And I can basically build it out very similar to how I did my main form. So again, they make it very easy and they make it very similar to Visual Studio.
Fr. Robert: Right. The amazing thing is, playing with Xamarin really kind of makes you appreciate good app design. Because it sounds like it’s so easy to make an app. You just throw a bunch of things on the page. But there’s a fine line between providing too much functionality, too much information, and not enough. An doing it this way, it’s a really good way to remember, I may be processing a bunch of stuff in this program, not all of it needs to be available to the user, which again, strengthens the idea of splitting up view, view model, and model.
Lou: That’s right. So kind of the key take away is when you’re building your portable class library, that’s the biggest thing. That’s the thing you should pay a good majority of your time on as a coder. Because that’s the thing that’s going to allow you to become portable across all the different- especially in the Xamarin kind of environment if you decide to use that. It allows you to kind of go across all the different platforms. And that’s the key is, you wrote it once, and now it gives you the ability to not waste your time in having to learn objective C and Coco and then over to Android, learning that. And Java. You only have to learn C Sharp and you only have to really understand UI layout like XAML which is very similar to how Xamarin does it. So once you learn those two concepts you can kind of basically build an app and deploy it to all these platforms.
Fr. Robert: Now Lou, I gotta ask you, this was a question asked by 8bitSteve in our chat room. He’s saying “wait a minute, this looks too good to be true, if it’s this easy to make sure that your portable library is good, and then build an app for every device, why is it that we don’t see more developers releasing apps for every device at the same time?” it would seem that this would be a no brainer. Why is this not the standard?
Lou: It’s a good question. Honestly, Xamarin is fairly new. They used to have one called mono framework and mono develop. This one is even newer than that and this makes the ability to go across platforms really easy. Now, sometimes when you’re deploying larger apps, like let’s say you already have a game or you already have an app that’s build for a business, sometimes those apps are fairly large and so they need to basically be compiled in Xamarin to work on those. And when they’re large like that, Xamarin says okay, well we’re doing a lot of work for you so why don’t you go ahead and pay us a fee, and then you’ll allow you to go ahead and—so sometimes those fees are a little larger than some businesses are willing to pay. Honestly, if you have a successful application on one of the platforms already, and you’re already making some money, I would say it would be okay to spend maybe 4 or $500 dollars to convert that to the other platforms without ever really having to write additional code. So that to me is valuable. But to build an app from scratch, if it’s a small app and you’re going across platforms, honestly, it really is a no brainer. It seems too good to be true, but honestly it was super easy for me to kind of build this out without even using it. There’s a lot of great videos by Xamarin, if you go to xamarin.com. I sound like I’m doing a add for them.
Fr. Robert: Wait! Disclaimer. So Lou does not work for Xamarin, he does not get paid commission by Xamarin, he has no connection to Xamarin other than the fact that he uses their tool.
Lou: I just appreciate it. Because I’m not an iOS developer and in order for me to build an iOS app, I would have to go learn a whole bunch of things I’m not familiar with. So this is a really easy way for us to do it. And again, it is too good to be true, but it does work. It works really well.
Fr. Robert: You know I think maybe the two of us need to get someone from Xamarin and just have a sit down with them on how they make these tools because, you just said “listen, I’m not an iOS developer”, but if you have these kinds of tools, you are an iOS developer. You just haven’t developed for iOS yet.
Lou: That’s right. I think the key is, they make it so easy. With iOS it’s a little more difficult because you do have to have a Mac in order to do this. Or OSX. But android, they make it even easier because you can install the SDK on Windows and all that stuff. But yeah, you don’t have to have the intimate knowledge of all these other platforms. And some people do, I mean granted, there’s some really smart people, especially in the TWiT network, TWiT group, TWiT fans, there’s some really smart people that know all the difference. And they’re probably like eeh, why spend the money when I can do it myself. And yeah, I agree I think if you have the knowledge to do it, more power to you. But this makes it easier for people who just don’t have the time and/or the knowledge to go across platforms.
Fr. Robert: Yeah. Actually Jeff in the chatroom comes up with a really good point. This is not just Xamarin, this argument has been used for pretty much every emulative software solution I’ve ever seen. He says “Xamarin typically has libraries that may slow you down because it has to emulate certain commands.” That’s always true. But Lou, follow me here. It’s become less and less important. I mean, it used to be that you always wanted to write for a particular platform in the language that platform worked best because the power was limited. Today’s devices are so dang powerful that, especially from writing a simple app, you’re not going to be able to notice the difference. It’s not going to slow down the system appreciatively and it won’t even suck more battery, beyond a couple percentage points. So yes, it will slow you down, but I don’t think that’s a good reason not to use it anymore.
Lou: Yeah. That’s the key, they don’t necessarily always emulate anything now. They actually find ways to compile them down to native resources. And so that’s kind of the key is, they’re getting a lot better- it’s not like they’re running the dot net framework fully on your iOS or Android device. They’ve created an interface layer to the native layers of those platforms and then they’re actually running it on there. So yeah, it’s getting a ton better. And even with every version of dot net, especially the latest ones, they can compile down to almost machine code and you’re running just native machine code on your application. So there’s almost a point where there’s almost not any difference between native and managed. So it all depends on what you’re doing. If you’re doing a lot of graphics and stuff, sometimes there is. But again, XAML, there’s points where you can compile into direct X and if you played a game on an Xbox before, all those games are built in Direct X, they’re just a framework on top of all the graphics processes that are out there. So I mean, they do have the capabilities to do all this native capabilities and the speed of whatever that platform runs at.
Fr. Robert: Right. Well Lou, I’d say that for homework we should be asking the folks at home to take- again, we’re going to provide you all the code in the show notes, just download the zip file on packet and you’ll have the entire library that we’ve been working on for this entire build an app module. And then use Xamarin. And figure out a device that you want to use and go ahead and start developing the view for it. I’d be interested in seeing what people come up with. Because you’re all going to take the same code, and you’re all, I guarantee, you’re going to come up with different ways of presenting that information through the interface. Does that sound about right? I mean, we’ve given them enough information, enough knowledge to be able to do that right Lou?
Lou: Oh yeah. I mean, again, we’re going to give them an example that actually has the Windows store and the Windows phone app in there. And again, it has the log in button, the log in screen, the download of the tasks and the tasks to hook up to the code that we gave them before. And then as a second project, I’ll send it out, it’ll actually have the Android in there if you have Xamarin installed. And so that’ll make it so that they can open both, and hopefully we’ll give them enough tools to build out and do what they need to do to do it themselves.
Fr. Robert: Lou I need you to act the wizened guru here, speaking out to the youngins, the ones who want to become code warriors. As they start to design their apps- because this really is a shift. We’ve gone from a lot of console style programming. Both with C Sharp and with Python, with Perl. Now we’re looking at designing applications that would run on the mobile devices that we use today. What’s the bit of wisdom that you want to give programmers? I mean, there’s a lot of things here to get confused about, what advice do you want to give?
Lou: So I think- you know you choose whatever platform you’re interested in. I think that’s kind of the key first. If you have an Android device, go and figure out what those tool sets are for the Android device. But if you’re just starting out and you want to learn an easy language, Javas and C Sharps are really easy languages to learn and they all have great tooling. Really great places to go, netbeams for Java, eclipse for Java, Visual Studio for C Sharp and miodevelop Xamarin studio for C Sharp. And so these are all great places to start and there’s just so much. I mean, there’s whole industries built around these things and videos and things that go around and really just take those and have an idea going forward, like I want to build this or I want to do that. I have an idea for an app but I haven’t been able to build it. That’s the kind of thing you need to have going into this right. So that’s kind of the key. Is once you have that, the tools are there for you and use Coding 101 as a great fundamental learning building block for it, and then branch out and start finding some other stuff too.
Fr. Robert: That’s Lou Maresca. Senior software engineer at Microsoft. Lou, could you tell the folks at home where they can find you, your work and more coding examples from our code warrior?
Lou: You bet. On twitter @LouMM, also feel free to message me on twitter. I can always provide great links to examples and videos and training. A lot of people ask me questions about where to find this or that, or how to do this or that. Also the google+ community. I love to just read though the examples, Joe gives some great examples. Some other great people on that page and I love to just provide great links there too. And again, my day job. All my work is on syrum.dynamics.com.
Fr. Robert: Fantastic. Lou Maresca, as always, it is an honor and privilege to have you on the show. And we will see a lot of you in the future I’m hoping. Yes, are you still open to that? Have we soured the taste in your mouth yet?
Lou: I’m ready to go.
Fr. Robert: Alright. Ladies and gentlemen, Lou Maresca, we bid him farewell. He has been our code warrior. Now folks don’t forget that we do this show every Thursday at 1:30pm pacific time. If you go to live.twit.tv you can see the pre-show, the post show, everything in-between. And as long as you’re watching live, why not jump into our chatroom at irc.twit.tv. In fact, the chatroom lives right down there. Every time you write something I’m reading it during the show. And I try to work in your questions so that we can answer you in real time. If you can’t join us in real time or in real studio, why not jump into our G+ community? This is the place to go if you’re a beginner, intermediate or an expert in programming. You can find us at plus.googe.com/twitcoding101. The nice thing about this community is because we’ve got people of all experience levels, if you post a question it’s probably going to get answered. If you’ve got expertise, it’s going to be called upon. In fact, this is a ridiculously active group and we pull our examples out of here all the time. Also don’t forget that you can find us on twitter. I’m at twitter.com/padresj. That’s @padresj. If you follow me there you’ll be able to see what I do in-between shows. What I do on TWiET. On Monday, on Padre’s corner on Tuesday and on Know How and Coding 101 on Thursday. Brian, can you tell the folks where they can find you?
Brian: Oh me, I wasn’t ready for that Padre. On Thursdays with you doing Know How and TD and All about Android and this show. Doing projects with you on Know How and stuff. Check us out.
Fr. Robert: Folks this is the end of this module, but it’s not the end of Coding 101, in fact, we’re starting to move into our new format. Next week, we’ve got Smitty. If you’ve ever gone to DefCon you know this man. He is an embedded electronics genius. He’s going to show us the other side of programming. The side of programming that’s actually tied to hardware and embedded processors. It’s all part of our revamp and we do it because we love you. Until next time, I’m Robert Ballecer, this has been Coding 101. End of line!