Wednesday, April 16, 2014

Developing for Mobile

Hi there, I'm back today talking about developing for mobile, and what its advantages and disadvantages are.

First off, they're mostly disadvantages, to be honest. The biggest frustration is testing code. The easiest way that we've found is to run the application on your phone through a USB, since the emulator is horrible and slow. Once running on the phone, you can set up a console to give you error output and standard output on the computer. In this way, you can see what went wrong if anything, since the phone does not give verbose output. The problem here is that we need to test outside sometimes. Since our application is motion and GPS based, a lot of the time we need to go outside and run around with it to test if features we implemented even worked. Needless to say, this makes it difficult to bring the computer with you to debug.

Another issue is artificial data. With computers, it is much easier to set up a system to feed your program false data so that you may test your code. With mobile, we are often pulling from sources on the phone itself and does not make sense to fake the data from it. Overall there are many difficulties developing for mobile since you are developing on a different platform than what you are developing for.

One positive aspect is that your program is as mobile as your phone. This means if you want to test data on a mountain, you don't need the computer just your phone, which is highly portable.

I like developing for mobile, because I think it's an important skill to know and it's so popular right now. There are so many apps being developed, but there are a lot of low quality apps developers have a chance to stand out from the crowd.


Intellij... You weren't the way

Hey there, today I'm going to be talking about JetBrains IntelliJ. You can find their website here.

We picked IntelliJ because we thought it would be the robust path. Though it's new, we read much high praise for it and that it was the future of android development. We knew going in that there would be more support for Eclipse, but really how many problems can an IDE cause?

More than I thought, certainly.

Adding libraries is a key part of the IDE, and it is not at all clear much of the time how we are supposed to do this correctly in IntelliJ. Because all of the tutorials were written for Eclipse, I assumed they would pretty much be the same in IntelliJ, because why would they reinvent the wheel? However, the project structure files are different, so much of the process is different enough to invalidate tutorials. Basically, it's just different enough to cause problems.

I would not recommend using IntelliJ for someone thinking about doing Android development. Use Eclipse. The features are all there. It has better support. And mostly, it's what everyone else uses.