Which Language Should You Learn for App Development?

I’m always interested in diving in app development, problem is I don’t have any experience. What language would you recommend to start learning? I’m interested in creating simple app games or utility tools. Now mark, I’m just going to give you my opinion and everybody has different opinions. So I’m almost like…. I was almost like I wasn’t sure if I was going to answer this one because I’m sure whatever I say somebody’s going to disagree with. So I would ask everybody else to put your opinions in the comments too, because let Mark know, because we’re all going to have different opinions on stuff so.

range of programming languages

I prefer to use Javascript currently, but we use different languages for different things so. So let’s just take a lay of the land, the languages that you could learn and these are the ones that I know about that you could do apps with, right? So there may be others that are just never used. So you’re looking at Objective-C, Swift, Java, C#, JavaScript, Lua. And I don’t I don’t think I’m missing any, but if anybody know any other frameworks that use different languages then let me know. I don’t think anybody’s ever done an app framework with Ruby for example, but I could be wrong, right?

So it depends on whether or not you want to do apps or utility or utility apps or games so, you know because there’s different ways like you could learn just native code and the nice thing about learning native code is that it’s free. It’s the one that the platforms would like you to use, so every time like Android comes up with a new version of some new feature whenever on their new operating system or same with iOS, it’s always available first in native, right?

So that you could you know what’s going on you don’t have to pay a lot and then you also have other framework assistant on top of that. So we’re looking at if you want to do like iPhone game or iPhone apps you can do Objective-C or Swift. If you want to do Java then you could do… sorry if you want to do Android then new Java, right? So and those would be the native ones. So like if you want to do an Android app and you didn’t want to pay any money and you just had a bit of time, you could you know there’s loads of resources out there. You can just download Android Studio. Install the Android SDK and just start coding away.

If you have a Mac you can get Xcode and you start doing that on an iPhone, right? Now some people will use other frameworks like I prefer…I do some of those some of those languages, so like I will do a little bit of Java. I do a little bit of Objective-C, very little like as little Objective C as I can because I’m just… I’m just not that comfortable with it, but I do like using Swift. The problem with those native code… those native languages is that it’s really difficult to put those into other other devices. So like if you wrote an app in Swift for example or Objective-C then it would be difficult to put it onto Android. So there’s lots of platforms, lots of frameworks that sit on top of that, so you’ve got or you know you’ve got Xamarin which is like C# and .Net which a lot of people use, and for some reason every time I mention Xamarin somebody gets angry with me. I think once I called it like a Hybrid which you know they said “Hybrid is Javascript in native so it is not a Hybrid, it’s native!” right? but my whole thing with Hybrid I thought Hybrid is like two different technologies hybrid together, but so you’ve got Xamarin which is very cool, which you could take you know and you could use like C#. I think you use VB.Net, but I’m not sure to create like one app that that fits both but the interfaces and the GUI, you’d have to change the interfaces a little bit for both. So it looks native to both platforms so if you’re on iPhone it would look different than it looks on Android. So you’d have to code those sizes different, but you have the core which is like those libraries. And Xamarin, the reason I haven’t used it before it could be a bit expensive and you know even though C# was my… as a contractor that was my main language, but I started to move into JavaScript and I prefer using Javascript more, right? You’ve also got you know the Cordova based or Cordova / PhoneGap based framework. So we use the Ionic Framework which is very popular and I really enjoy using it.

The limitation of that is that you rely like if you want to use some native functionality, you rely on plugins being available, but to be honest with you there are plugins everywhere. There’s so many that are available and it’s not that hard to write them yourself, right? But another limitation of those frameworks is that it’s not like it sits inside a webview, so it’s not like if you write a button or if you make a button it’s not like an actual button. What it is is a web page with a button on it with CSS that makes it look native, right? Which is you could say is good or bad. It depends on your objective. My objective is putting up products. When I first started development, my objective was to find it. So okay when I first started out as a developer my objective was to find the language or the technology that would pay me the most then it became the technology that would impress fellow developers the most and now it’s like the technology that I could do the least amount of work and put products out there, right?

So that’s why I like using Ionic. I love using that framework when we do business applications, right? And then you’ve also got uh you’ve got these kind of newer ones like that are Javascript but they compile into native. So you’ve got NativeScript and you’ve got React Native, and NativeScript is done by Telerik and you know I played around that just a little bit and you could you know code everything and then you run it through a compiler and we’ll compile it into a native code, so button is a button. It looks different on Android as it does on on iPhone stuff like that and React Native is the one who was… I don’t know if it was created by… it may have been created by Facebook or recently purchased by Facebook. I think it was created by facebook and that’s pretty cool, too. So it’s the same thing, it’s compiled code but the core is in Javascript so you can use a lot of the same code and you can actually script it differently for different platforms. So that’s something we played around with quite a bit, but haven’t actually released anything in those yet, but we’re not that’s if you want to do a utility app. But if you want to do a game, now you can use native code to do games.

“Creating Android Games”

There’s a book out there called “Creating Android Games” I forgot, it was by Apress. It was a huge book. I read through it and they talked about using native code to create a game. It’s really difficult there because you’re actually going into the lower level, so like if you create a game you actually have the way that it works is you have like a game loop, so you know it starts in the loop and it just kind of goes through and you can code this loop and then through every iteration of the loop based on the frame rate you can move characters about and all this kind of stuff so everything moves like that and it’s actually fascinating the way it works. I mean I love doing that kind of stuff, but there’s also frameworks that you could use that make the job a lot easier.

Corona SDK

I, we use Corona SDK for a lot of stuff and Corona SDK the main thing that I don’t like about it is it’s in Lua, right? And Lua is a language that’s very easy to learn so if you want to just… if you just want to do games Corona SDK would be my recommendation. Lua is an easy language to learn but it’s not like a portable language. It’s very difficult to take Lua and do another app like if you did want to do a non-game app with it or something like that. Now Corona says you could use it for business apps and we’ve done that for a couple business apps and it just it was really clunky and I found to be really awkward experience, right? Another thing about Corona, I think Corona was just a Corona Labs which was just acquired recently by Appodeal, so this always good because I get the emails because you know I follow everything that Corona does and you know it seems like they’re always being acquired. They’re like the foster children of app frameworks. They seem to always be acquired by a new company like every six months or something. I don’t know if that’s good or bad, but anyway I love that platform but a lot of people will disagree with that say Corona is the best. They will say its Unity. If I hadn’t gone for Corona I would have gone for Unity. Unity uses C# JavaScript. You can code for iPhone and Android, it’s a bit more expensive like Corona was used to be expensive and then it was free and then they started charging for… they charge parts for putting on splash screen and charge you for the splash screen.

I think unity is the same. I think you get it, you could release it for free but you have a splash screen. Unity guys, I know there’s loads of Unity guys out there, correct me if I’m wrong in the comments so. In Unity, you could do 2D, 3D, you know if you pick up that skill then that would be really really useful, right? And then also you’ve got Cocos2d-x which is a very popular one, and that I think is an Objective-C or C++ and you could you know code for both platforms. There’s also a JavaScript version of it called Cocos2d-JS which I’ve had a play around with but I never really you know I think the document at that time… the documentation was not that good so it’s really you know really really hard to use. So that’s you know where we are. There’s loads of different opportunities. The nice thing is you could invest nothing but time and pick up some of this and I would like to say that it’s not as hard as you might think and I know that it’s difficult because there are so many different technologies out there, you don’t know where to go and a lot of times you have to choose you just choose one direction and go that way. If you go… I would say if you go native you can’t go wrong, right? because it’s native but then you’re limited to one platform and you know it seems to be a little bit more difficult, right? Like when I use Objective-C, I always feel… to me it feels like I’m running with my shoes tied together like everything is hard, right? But there’s other people who use Objective-C and they’re just so used to C++ and everything like that, that they’re just like “I just love coding in this objective-C. I don’t use those frameworks or whatever” so it’s just you know if you pick that up then that I think that would be good. So anyway, Mark get started.

To sum up

Don’t keep looking around. Don’t research it too much. Get started. Go with Android. Android’s taken over anyway. Go with native Android and just you know get on with it or you know pick up the Ionic Framework and start learning with that. It is better than you rather than learn the language and then start in the code, I always find it better to start in the code and then figure out what all this stuff means and then when you go do and read one of those books, it all starts to make a bit more sense to you. Anyway, that’s just my opinion and everybody please let Mark know and also let me know what you guys think if there’s any languages I’ve missed, if there’s something that you use that you think are way better. And again, let me just emphasize that it’s not about the code, it’s about the product and it’s about you know getting it out there and getting people using it. So unless you’re going for a job and you want something that will pay you well then I guess it is all about the code.

Leave a Reply

Your email address will not be published. Required fields are marked *