Monday, July 15, 2013

Planing For My Next Project

In this post , i want to express my views about selecting a platform for my next project.

The Project

I have been planning to make an application which will be basically a Phone Book Manager. Surely there exists such applications , but i don't know any. Because i want to develop my own application for fun ;)

The Need

I need that application to be able to store,manage my contacts. I have my cellphone contacts from my Nokia phones and now my android phone. I frequently add new contacts and remove "inactive" contacts ,for many reason , but i always backup the contacts in exported files.
Now  i have many backup files,from Nokia and android.These files have some common contacts and some different and new contacts.When i need to locate an older contact info. i have to open all files in my text editor +Notepad++  and search in all files.

The Functions

I want my phonebook app to be able to
  1. Store Contacts. (CRUD)
  2. Import the backups from different formats(basically vcf files from Nokia and android)
  3. Manage Duplicates contact details
  4. Merging Contacts
  5. Searching Contacts
  6. Exporting sub set of contacts to multiple formats (compatible with Nokia Pc Suite,Android,blackberry etc)

The Platform

I started to learn C# and then WPF ( windows presentation foundation). I wanted to learn by making my app in C#. But then my "expectations" increased...
I want my app to be on my android phone, +Windows 7  and my +Ubuntu  installation.Or may be i may have +iPhone  or +BlackBerry  in the future :-P
The only option i know is +Adobe AIR  ;-) and i am quite good at AS3.0 too.

The Thoughts

I also thought of doing it in Java .I once made a database app in Java for my friend and also been learning Java so that I can make my nokia app x-SMS port for android.But using Java platform for my phonebook app would allow only to be available on windows,ubuntu and android(with separate code offcourse).

I also tried +PhoneGap  and made an HTML Canvas game and x-SMS app for android. But i didnt like it because the HTML presentation layer was quite SLOW on my android phone. Also i don't know if phonegap can be used to make desktop apps. Even it may , i will have to write separate program logic for every device ( windows,ubuntu,android etc). Adobe Phonegap Build is cool but its not free :P and i am not planning to commercializing my app.

Another technology i find interesting is NME.io now OpenFL.org  . Its based on +Haxe  technology and language. As far as i get , it is for game development only,may be i am wrong because I didn't fully learn its capabilities but they state a single code for every platform , sounds cool .May be i will dig more in future.

The Adobe AIR

So the best  option known to me is Adobe AIR. I can develop using free IDE like FlashDevelop , and Flex SDK :P .I downloaded Adobe FlashBuilder 4.7 , it gives me 60 days of trial , and i  think i can make my app in the time .
 I can use xml or json for storing my contacts or i can use SQLlite database which AIR gives me to work with. I will be separating my visual presentation and my app logic , as much as i can . I plan to use Robotlegs v2 , but who knows i will consider pureMVC for AS.30 when time comes.

The Problem

I fore-work a little problem . I dont want to make separate VIEWs for desktop version and smartphone version.It would be to much work for me.So i googled and tried Air mobile components for desktop ,  the first thing i noticed that i cant scroll List component with mouse wheel. Because these components are optimized for touch , may be some tweaks can make it work well on desktop too.I don't know how much work it needed.

The Potential Solution

As i am doing it for fun , i am considering to use Starling and Feathers UI instead of flex framework. The Feathers UI components work well on desktop too;after examining the example on the site . Also i found work on Starling+Feathers+Robotlegs. Coool...

Right now i am studying the Feathers documentations , and will practice it some,then i will be trying Robotlegs v2 , because it has changed from RL v1.5.2 .And finally some practice on Feathers+Robotlegs. After that stage i can be sure what can be done :P 

Next I will be posting about my app features and design considerations , .
Please comment and feel free to tell me what i am wrong about and suggest better solution.,
  












No comments:

Post a Comment