StartUp : Geek Mentors

It’s very exciting to see these people at geek mentors doing a nice job porting angrybirds to a local version.
Flash is not always about flashplayer, its much more than that if we really follow the philosophy of Flash community. These guys at this startup began their career in Flash, but as of any cool dude in Flash, they always tried to push the technology and dove into new platforms for the learning and broadening the horizon. They are hungry for technology and fun, both at once.
The momentum is always there for fun and learn new things all the time. The work never seem to be complete but then they never seem to rest ;) that does not mean they are working under pressure, that means simply they keep on working for what they love. Apart from developing games for Apple appstore, there is a quality mentoring option for people who want to learn things the fun way by doing it. The best part is there is no project manager to manage you, come to work and do it by how you want to do.
There is a heavy investment on new technology learnings. When the world was fighting for whether to Html5 or Flash, this new startup solely concentrate on GameSalad. A solid platform for publishing your games to IPhone, iPad and even HTML5. The point is if there is a tool which can produce quality applications, why fight over how many lines of code one need to write in a particular platform!
GameSalad link for Angry Anna : http://www.angryanna.com/
The content below is kind of an interview with the company

Introduction of the team :
Mohd Shah Nawaz : Co-Founder,
Mohd Faisal: Co-Founder,
Himanshu Himthani: Art Director,
Abhishek Chawla: Production Lead.
Ajay Joshi: Educational Advisor
Experience till now : Don’t know what to write…..
Vision : At Geek Mentors Studios, our vision is to be the best company in the world–in the eyes of our customers, shareholders, communities, Employees and people.

Wishing the team all the best.

OpenPlug : ASlate, drawing application.

While learning OpenPlug|Studio and diving into the code, my third Android application is here. Its a simple drawing board, kind of slate. As an user one has option to select different color and pen thickness for drawing on it. Again a simple but usable application, which can be downloaded from this link.
The source code is availbale at Github too.

Using List component in OpenPlug

OpenPlug|Studio ships with its own SDK and though it seem like FlexSDK dependent, there are native components to work with for mobile devices. The major or the most used native component is List and one can access it as

mob:List id="allSDCardFiles" 
	x="0" y="0"
	height="100%" width="100%"
	rowHeight="45"

While it is expected to work fine and it does work fine in the simulator, but when tested on device (I have used an Android phone to test), the application simply crashed. Well the problem here is a bug in the baseSDK of OpenPlug. So till the bug is fixed the simple solution is to use a default itemRenderer. The fixed code will look as

mob:List id="allSDCardFiles" 
	x="0" y="0"
	height="100%" width="100%"
	rowHeight="45"
        itemRenderer="ListItemRenderer"
	

That simply works every where from simulator to the device.
Hope that helps someone out there.

My first workable Android application, AFinder.

On my quest with different tools/languages, I started on OpenPlug|Studio for developing in Android. Though this is a tool for developing for multiple devices, I specifically tried this for Android for the time being.
This IDE is based on Eclipse and there are two flavors of installations. One installs it directly as a standalone IDE and you have option to install it over FlashBuilder. The development is also based upon the same component style development as in Flex SDK. There is a different name-space for mobile specific UIs. they start with “mob” rather than “mx”. From compiling to publishing as an .apk file for android device installations are quite straight forward. The best part about the IDE is its completely free. Well then it has potential as to one codebase and publish to multiple platforms. The community at OpenPlug|Studio forum seems active too and one can feel there are a lot going behind as to fix up bugs and add new features to the tool set. Though there are bugs and features to be added, but as I said, once you involve in forum, you got to know they are already working on it and new releases are happening almost in 2-3 months.
Here is my basic Android application to move around your file system on the device. Would love to listen the feedback.

OpenPlug released for FlashBuilder 4.5

If you are a flash developer, then the easiest way to create a cross device application is to use OpenPlug Studio. The feature list of the tool can be read here in detail. While the standalone version of this free tool is in its alpha version, the FlashBuilder version was out for sometime.
The best part of the new release is, it now supports FlashBuilder 4.5.

iOS5 with ARC ( Automatic Reference Counting )

With iOS5 comes the most important feature for me as a developer, Automatic Reference Counting.
This is may not feel a large announcement from an user’s perspective but as a developer, this is the feature. Well, what does that mean and how it affects me as an iOS application developer? This means no retain and release, yeeeaaaahhooooo. If you are developing for iOS devices till now, the pain of maintaining the reference count of an object is always there till it goes to the appstore. With the ARC, one can now forget those. In other words we can say finally garbage collection is here with iOS5, though its not that from a technical perspective, but from a developers perspective its kind of that.
Here is the official description about all the features of iOS5.
Whatever the announcement is for others, but for a developer it is the most significant release of the iOS till now.

Mobile device emulator as Chrome Browser extension

If you are a mobile application developer, then it would have been always a quest to find the devices to test the applications. Apart from that, one need particular environments to develop the application too. Some device applications can be developed and tested in particular Operating system. Then there are HTML5 and JS frameworks and tool kits to develop mobile applications. These frameworks and toolkits allow one to develop applications as web applications. While this option, opens up the opportunity to develop mobile applications in any environment, there is still a lot of work to do, when it comes to test these applications in various mobile devices.
Ripple is an extension to Chrome browser. I think this can not be more easier than this. Once installed, the interface is quite straight forward. Well the process goes like this. If you are in a webpage (any webpage), just right click and say

Emulator > Enable

That will render the webpage in a mobile device, there are choices to configure the devices also. That means, any web application can be tested with a number of device emulators, right in the browser itself. There are options for Device, Platform, Accelerometer along with a lot more.
I think this can not get easier than this.

Lua : My experience with it.

Well, on my journey with mobile development, I picked up Lua for sometime. I am quite impressed with its simplicity and power. If you do not know, Corona SDK provides Lua scripting language to build applications for mobile devices. The popular Angrybirds game utilises the power of Lua.
Basically its a simple language with very minimum number of key words and language syntaxes. Anyone familiar with javascript or actionscript can start jumping into it and be productive from day one. There are variants of the installer for Mac and Windows. Some what I feel Windows installer is the best and has got its own IDE, which is on top of popular SciTE IDE.
There is a complete 2D game engine / framework for Lua named Love. With that one can instantly start creating Lua games. As Lua is simple, so as Love is. But then one gets a whole lot of goodies out of a framework. I would say a must try for any game developer.
There is a nice framework for iPhone, which uses Lua and its called WAX. This also fits Lua’s philosophy as to keep the framework simple and easy. The best part is, once you start coding in WAX, you do not have to think about memory management, which is very important and sometimes most time consuming act, while developing application with ObjectiveC.
Now that I have seen Lua’s power and simplicity, I will try that out more and more and post updates about my experiments. Here are some Lua related links for you to get used to
1. Users, tutorials and more
2. Love : 2D game engine
3. WAX : iOS development framework
4. 2D Engine A 2D game engine (I Have not tried yet)
5. Luxinia 3D game engine (I have not tried yet)
6. Lua Forge Projects, tutorials and more
7. Baja Engine A game engine (I have not tried yet)

With that I think I also have to pick up some engines and start playing with it. Overall, Lua feels just perfect as its simplicity and power. Its portable and lightweight. After all its Opensource and Free.

One size fits all, does not fit.

I heard this one before, but then kind of ignored. Why?!! For I, as a web and desktop designer and developer when started iphone development it seemed, “ok, fine, lets do the design and go for development” . Iphone and any iOS in that case have a clear guideline of user interactions. So no worries, if I am sticking to those guidelines, I am sure the product will have a nice user experience. Keeping that in mind, I moved on. And then it all went well. Until I started developing for other devices and other OS such as Android.
Developing games on the other hand is not about those default navigations, one has to think of it from the gaming UI perspective. So what I think is while game design can be one design for multiple devices but the size factor does the trick. If a game is designed for 2 different mobile phones (may be different make too of same OS), it does not matter which OS they are running in, as long as the size of the device screen is kind of same, we are good to go. But then if at all there is a difference in the ratio of height and width of a device screen, the design needs some tweak to give the user a same or similar user experience.
Now, if we talk about application design for mobile, then its all together different approach. Apart from the size, one has to take into account, the platform that is running the application. This surprised me, when I was trying to port an application from iphone to android. Well, we can just port it and it will work the same way it works on iphone, but then there are different physical buttons present in Android devices (even Windows mobile phones and other OS phones), which are not present in iOS devices. The point is either we are not utilising the UI of the device or making a bad use case of the UI of the device and in turn our application, if we port one application as is to another device.
So clearly, each device will have a different design, the code base may be same, but design must be different to be useful and give the same user experience through out devices.