Increase efficiency while developing

When as a developer, you put keystrokes to code, there are always methods that help you make the process faster, so here is a quick collection of what you can do to make things easier.

Snippet Collections

It is always useful to have snippet collections that can be inserted to save you from typing the same redundant code every time. One of the apps that I find very useful (personally) for storing snippets, is CodeBox this is worth the money you spend on it

AutoCompltion

This is another way to keep snippets that are easily inserted into your app while development, this can be done with the help of apps like Typinator think of it like auto-correct (if you have used Word) type a keystroke and voila, it will convert it into the text snippet.
There is also the program Keyboard Maestro this is slightly more involved than just auto-correction of keystrokes, it can also record macros, so if there were a series of tasks that you might have wanted to repeat, this will do it for you at the press of a keystroke. You can even script it to do so.

Frameworks

While the Apple iOS frameworks provided (UIKit and others) are quite good for the users, there are others that are similar of help in making development faster. Where with xcode, UIBuilder was the way to create an interface, with newer OpenGL based interfaces, that is all managed by code, there are not many UI designers that work well or exist.

There is Cocos2D, this is a good framework for those that want to start with developing games on mobile platforms and have a single source via which they could also compile it for the desktop, there are posts of cocos2D for windows and I guess they are working on one for Androids, so this will soon become the multi-platform development framework, the only issue with this is that it still uses objective-C or C++ so the multi-platform is a bit difficult presently.

Based on Cocos2D, comes the other framework Kobold2D, this is the cocos2D engine wrapped in a lua wrapper and has some additional functionality added. This is great but works on Mac/iOS only.

For those with a flash based background, there is the Sparrow framework, that works similar to cocos2D and uses objective-C, so should be easy if you can get over the objective-C transition.

Continuing, if you feel that Lua is the easier language (personally, I think that lua langauge is so much more geared for development than any other, no more memory allocations and management required, arbitrary arrays, dynamic variable creations (actually table/array elements) and the best part that you can integrate lua scripting in your own C++/Objective-C type framework. Unfortunately, it cannot be done with the C# (windows Phone 7 does not use C++ only C# hence this is still an untapped area) framework.

For this Lua wrapper, there are a couple of options, the best and the easiest to use is WAX from Corey Johnson.
Then there is the toLua, toLua++, and others (did not find them of much use really)

If you do not want to manage all of this yourself, then there is a Lua based open source wrapper in the form of Moai SDK this will allow you to create apps using the Lua langauge but if you wish to tweak or add more functionality, you can using objective-C or C++ or via pre-compiled libraries.

Then there are the Lua based frameworks that do not require any tinkering, just execute and see the results.
You have

Corona SDK has established itself as the framework for those that have no experience in development, so you can be a kid or an adult that has no idea of what programming is, but have an idea and want to develop it further, then this is the framework for you. This is indeed a time saver and can also provide functionality for advanced developers. However the only problem with this is that because it was made kid-safe, it is. You can only do what you are allowed in its sandbox. This is perhaps the only framework in all of the options that is rigid and non-expandable, the build process is proprietary and runs off the Ansca Servers, so if you have an outage or are in an area where you cannot access the Internet, you cannot build. The points that are in favour of Corona soon get outweighed by the other issues around it like the build Server, the dashboard ( which is grossly inflated and the final app calls home with information which is not seen in Dashboard but available only to Ansca) and lastly, you are entirely at their mercy, they stop supporting a particular device or add features as it suits them. There is no specified path of progression or road-map to follow.

Lastly there is the Gideros framework, this is another lua based framework, this too has it's pros and cons. It is very much closely related to Flash, so those that are flash developers will instantly find themselves at home. The best part of this is the fast to device deployment. I have not as yet seen anything as fast and efficient as this. Run the player app on your device anywhere in the world. You will get an IP Address (apart from the ones that are in the home network range 192.168.x.x or the 10.x.x.x type range) click on the run button here and the app will get uploaded to that Player and voila... there is a downside to this, this is actually like the Unix display server, this player app is only the display for the app to run, it is not installed onto the device, just running to have the display (GUI output) on that device. Then compiling is just two click away, export the app for iOS or Android and it creates a project that can be compiled using xCode (for iOS) or java for Android.
The other good feature of Gideros is also it's downfall, they have a wonderful integrated IDE, they have spend great amount of time in providing a completely integrated experience, like all others, IDE's have become a matter of personal preference. Even Apple is constantly working on the xcode interface and adding features and with every release, there is a mixed reaction on what they release. So no matter how wonderful they make their IDE, there will always be a mixed reaction to that. Plus I am so used to working with BBEdit and TextMate that I find it frustrating and limiting while working with the IDE, the above mentioned text expansion does not work, the text replacement is replaced with a series of a's However I can always code in TextMate and paste before in the IDE before testing, but that is a bit painful.

Well, there you have it, these are some of the things that will help you on your journey to developing apps, it is all about choosing an option and going ahead with it. There are other frameworks that offer mobile development using other technology like HTML5 and JavaScript like PhoneGap, GameMaker, Monkey, Unity and then there are other that use Flash like Flixel, and further more like GameSalad. Making apps or mobile apps shall continue, it will soon boil down to the frameworks and tools that you can use to make the process more seamless as possible.

There are a few things that are in development from OZApps that will change how you develop in the future. More details on that later.

Comments

Popular Posts