Home Tags Posts tagged with "Agile"

Agile

3720

Lahiru, a Java Tech lead with over 8 years of experience in enterprise software development, currently is working as a lead Android Developer at Exilesoft.

More info is accessible here.

Stay tuned with the Live Blog for detailed and Live updates.

3594

The Agile Software Development workshop organized by the ‘DevOps Team’ of ‘National School of Business Management’ in collaboration with ‘@99x 99X Technology‘ will be held on 6th March from 9.00AM onwards at NSBM auditorium. The NSBM ‘DevOps Team’ and ’99x Technologies’ will take you into a whole new dimension of Software Development Methodology with Agile Software Development.

Check here for info and event page.

Video Coverage:

Photo Album: here.

Developing many Android apps I found that a lot of methods are non-application-specific which means I can extract them into a Utils class which I can then share among various projects. One of my most useful methods is Utils.isEmulator(). This allows me to write into the app behavior which will be optimized for development in case the app is running inside an emulator supplied by an SDK and optimized for end-users in case it’s running on an actual device.

Here’s a use case example. Let’s say you’re building an alarm clock for Android and you want to test the snoozing feature. Let’s say the snooze period has a minimum length of 5 minutes. It will be a waste of time for you to wait 5 minutes every time you hit snooze when you’re actually testing this on the emulator, so why not set it to 1 in this case?

final int minutes = Utils.isEmulator() ? 1 : 5;

While developing the application yourself you’ll find many such use cases. At the moment there is no full proof, recommended way of checking whether you’re running in an emulator or not but the following implementation never failed me:

private static final boolean IS_EMULATOR = android.os.Build.MODEL.endsWith("sdk");

public static boolean isEmulator() {
return IS_EMULATOR;
}

Packaging both behaviors in the same ‘shipment’ (.apk file) is also convenient because it allows you to enable a debug/development mode when you’re helping customers or when you’re just testing functionality on real devices (e.g. simply by forcing IS_EMULATOR to be true in the implementation above in case some button is pressed). In my next process tip, I’ll share another use case for isEmulator() which isn’t application specific and which you can use in every single app you build from now on.

2186

‘The Google Glass Project’, a real life case study of agile practices was presented at Colombo Agile Meet up on 1st of October 2013 at Voice Lounge, Burgher Recreation Club.

The presentation commenced with Shamira Dias (Delivery Manager, Exilesoft), addressing the gathering on the topic “Unfamiliar territory and uncertain outcomes: The Google Glass Project”. He introduced the company, Exilesoft as a software development company working on different technologies and in different business domains. He reverted back to his topic by explaining the collaboration gap and agile practices that Exilesoft used to overcome these hurdles. He introduced the Google glass project as the best example for unfamiliar territory and uncertain outcomes projects and explained the case study by introducing the Google Glass project team Shervon, Sanath and Amalan.  Further he enlightened on the agile practices (i.e. shorter sprint cycles, frequent demos, always working software and good infrastructure (unit testing, continuous integration)) that helped them to reach the project goals.

image002

Subsequently the talk was passed onto Sanath Nandasiri (Software Engineer, Exilesoft) one of the developers, in the ongoing Google Glass project. He explained what Google Glass is, what it is capable of and its available features. A live Google Glass Demonstration was the highlight of the evening. One of the important features was, it runs Android 4.0.4 and it got a wonderful natural voice recognition which has a high accuracy rate.

image001

Further on Sanath moved into Google Glass development. There are two ways that we can approach the GLASS development. Namely the native way (Android) and by using Glassware development (Server Side using Mirror API). He proceeded to explained how the glassware works, what the role of the Mirror API is and the technologies used to develop a Glassware. Native development is similar to the traditional android development but with some restriction of functionality and libraries. One of the reasons for the restriction is caused by the lack of sensors in Google GLASS unlike normal Android phone. Those functions can be achieved by pairing your Android phone through Bluetooth. It was also explained how the glassware authentication takes place under the hood.

image003

The next round of demo sessions explained in detail the Google GLASS Time line. Sanath demonstrated application of Google Glass to an Android phone running Android 4.0.4 or a later version, this he explained to be a great emulator to test your Glassware apps (however it may not be used to test native apps).

Finally Dulan Bandara (Senior Software Engineer, Exilesoft), elaborated on unit testing and its importance in an unfamiliar territory with uncertain outcomes. He further explained the implementation of unit testing in the Google glass project.  A comparison of unit testing on Android and unit testing on Google Glass was followed by a hands-on coding demo for the unit testing.

Volunteers from the audience were given the opportunity to experience the Google Glass. The presentation concluded with the Introduction of a new meet up group “Colombo Mobile Meetup”, and an Announcement of the upcoming Dev Day 2013.