I just completed the second of two new mobile apps for my mobile development class. The first was a distributed calculator intended to demonstrate the Model-View-Controller pattern and to provide experience with sms messaging. The basic idea is that you have one calculator spread over three phones. One one phone you have the calculators buttons. You press a button and the phone sends the button you pressed in an sms message to the second phone. This is where all of the actual calculating takes place. After the second phone receives and processes each message, it in turn sends an sms message to the third phone containing the contents of the accumulator. I’m not really sure this program really demonstrated MVC as I understand it, and it felt a little contrived, but it was still a lot of fun. Ultimately, it was a class project and not all class projects have to be particularly useful outside of the class room.
The second project, however, was both very fun and and provided some experience with some very useful topics. The program accessed a database of information through a RESTful web service and displayed the information on the phone. While working on the project I felt like my understanding of xml parsing and threading both got a lot stronger. Speaking of threading, the calculator project made extensive use of threads for communication as well. I has messed around with threads several times prior to this class, but the need to use threads throughout all of the projects thus far has made me much more comfortable with them.
While working on this project, I actually wrote it and then rewrote it from scratch twice. The first version sucked but worked, the second version was acceptable, and the third version I am really proud of. In general I feel like the code I am writing in this class is the best I have ever written. I’ve made a strong effort to be very conscientious about my work on these projects, and I feel I have some very clean and well written programs to show for it.