Android 1.6 Gestures

October 8th, 2009 by Tanu

Android 1.6 platform introduces entirely new gestures framework that finally lets developers build gestures into their apps using the new GestureBuilder tool included in the SDK. Gestures framework provides application developers with a framework for creating, storing, loading, and recognizing gestures and associating them with specific actions.

Need of Gestures:
Touch screens are a great way to interact with applications on mobile devices. With a touch screen, users can easily tap, drag, fling, or slide to quickly perform actions in their favorite applications. But it’s not always that easy for developers. With Android, it’s easy to recognize simple actions, like a swipe, but it’s much more difficult to handle complicated gestures, which also require developers to write a lot of code. In such a situation we can use gestures.This API, located in the new package android.gesture.

We decided to try it out and see how it works. For sample we made a list and used the ‘drag to dustbin’ gesture to delete individual list items.

Step 1: Creating / defining our own gestures using GestureBuilder

GestureBuilder

Step 2: Copy the gesture file created by GestureBuilder from SD card and put it into ‘res/raw’ folder of your project.

Step 3: Write code to handle the event generated by your gesture

step1.png

step2.png

Thunderbird 3 beta 4 - Search and Conversations (Gloda)

September 17th, 2009 by Amit

I have been using Thunderbird 3 (various beta) for quite some time now. There were quite a few new features but the ones I really liked or have been most useful were ‘tabs’ and new ‘Lightning’ add-ons.

Thundebird 3 tabs

I mostly use tabs to remind me of important emails. One, they are always in front and second when I restart Thunderbird I don’t have to look for them again as Thunderbird remembers/maintains last open tabs. Ofcourse tabs are also very helpful in keeping all open windows clean.
New Lightning addon works well with google calendar. Very helpful when sharing different calendars with different people. It synchs well and also gives reminders.

But thats not what excited me enough to write this article :) I upgrade to b4 pre today and they have included Gloda search engine based search and conversations. Earlier it was available as an add on and I tried this earlier with b2 but it didn’t work.

Thunderbird 3 search everywhere

Thunderbird 2 has per folder indexing which is not so helpful. You will have several folders and then your replies going into sent items. So what is needed is a tool to search across all folders. Also several times you need to read full conversations which is very very difficult right now. Thunderbird 3 has this powerful search engine ‘Gloda’ which search across all the folders and presents them either as a list or as conversations. WOW!! could it get better? :)

Now you can search your entire mailbox, rss feeds etc from single place and that too with lot of intelligent options. The result is also displayed very nicely. You have several filters to further refine search/conversations.

Thunderbird search

Thunderbird conversations

Thunderbird 3 beta 4 (Shredder)

iPhone OS backward compatibility, Target and Deployment SDKs and AdWhirl integration

September 2nd, 2009 by Shyamal

Since many iPhone and iPod Touch users have not upgraded to the iPhone OS 3.0, it makes a lot of sense to enable backward compatibility on applications. But if you want to leverage the latest 3.0 features, you would have to put some extra effort to ensure full backward compatibility.

And if you are also integrating 3rd party libraries (analytics, ad networks etc.), you would have to ensure those also are backward compatible.

Q: How can I ensure that my application works on all iPhone OS versions from OS 2.0 to the latest 3.x version? And I do need to use some 3.0 features like push notifications or the Map Kit functions.

  1. Choose the Base SDK as iPhone Device 3.0. You can do this by right click on project name->Get Info. Then on the General tab, set the “Base SDK for All Configurations”to “iPhone Device 3.0″.
  2. Choose your deployment to be the lowest version you want to support. You can do this by right click on project name->Get Info. Then on the Biold tab, select “All Configurations” for Configuration so that this change is applied to all you configurations. Then look for the “iPhone OS Deployment Target” property under the “Deployment” section. Set that to the correct iPhone OS version. In my case I set it to “iPhone OS 2.0″.
  3. In your code wherever you use any APIs available only in versions later than your deployment target, use them conditionally after checking if they are available. This can be done for both classes and selectors.

Apple’s documentation describes this in further detail. Here is an image from the documentation that describes how the compatibility works based on the configuration:

When using 3rd party APIs and linking to dylib libraries, there might be further problems if the versions are not compatible. When trying ot integrate AdWhirl, we got an error:

Dyld Error Message:
  Library not loaded: /usr/lib/libxml2.2.dylib
  Referenced from: ……
  Reason: Incompatible library version: xxxxx requires version 10.0.0 or later, but libxml2.2.dylib provides version 9.0.0

This happens because iPhone OS version 2.x  and 3.xuse different versions of the library. The simplest way to fix this is to make the linking for the library weak. This can be done by right click on your application under “Targets” and select Get Info. Then on the General tab, under the linked libraries, locate this library and change the linking type from “Required” to “Weak”

Height of ‘plagiarism’

August 29th, 2009 by Amit

Today while generating leads Santosh came across one of the most shocking and ridiculous ways companies seem to be ‘trying’ to do business.

Verna Technologies - I thought a lot but I have no idea what these guys are trying to do. They have copied our site word by word, even the founders name :) Only thing that is different is their address.

I tried to call the number but it is switched off, tried to contact their domain registrar but they are not working on Saturday. Will evaluate on Monday after talking to them once whether this calls for a legal action or not.

Are they real? or are they really so creative that they can’t even write what they have to offer?
TJHome | VernaHome
TJAbout | VernaAbout
VernaContact

WhoisVerna

Independence Day Celebration!!

August 19th, 2009 by raksha

Independence Day was just around the corner and we started planning for the special day!! Typical ideas like having ethnic day, giving away best dressed award, games, team lunch etc etc came up….I was discussing these ideas with Amit and a great idea of spending time with children in an Orphanage came up. The team was very supportive and contributed generously to organize the activities. The Company decided to contribute the same amount that was collected from the team :-) . We identified a Ashram called Anatha Sishu Sevashram located in Wilson Garden and planned to make the visit on Friday (14.08.09) as the children would be engaged in school activities on the 15th ).

We organized for distributing snacks, gifts (thanks to Akshi,Arun and Santosh) and planned to conduct games for the children. Another objective of the visit was to identify long term needs of the children and the Ashram so that we could help them in their development and not just provide them with momentary happiness.

As some of the team members were caught up at work :-( (we missed you all) only 10 of us visited the Ashram. We reached the Ashram late in the afternoon and were glad to see that the children were back from school. The Ashram is an old house which needs infrastructural development (like painting, lighting, modern amenities) and accommodates 60 kids at present . There is a play area , garden with fruit bearing trees, washing area for the children and a friendly Dog named Belli  :-) (means silver in English). We met Parvathamma (blind lady) who runs the Ashram and spent time talking to kids about their School and how they spend time in the Ashram. We then distributed snacks, gifts and asked every child to write a wish list. The children were welcoming and disciplined. Majority of the children were able to understand English hence we  were able to communicate with little difficulty.

It felt nice to bring a smile on the face of the children. We plan to sponsor education, provide uniforms for the children in future (during June-July) and get involved in the development of the Ashram.

As the children had to do their home work we could not conduct games  :-( but we did play in the swing, see-saw, slide!!!! :-)

Pillars of TechJini - Sapna

August 7th, 2009 by Amit

Yesterday while driving back home I saw Sapna, one of our PHP team members (almost running) to catch probably what was her last bus. I offered her a lift till her stop and then when I was coming back I thought I will write about ‘GEMS’ / ‘Pillars’ of TechJini. People who make TechJini what it is today, our ‘power performers’. Initially I thought we should have ‘performer of the month’ but then I realized I will end up writing about everyone anyways :)

Sapna was impressive right from the first question of her interview. We have very strict interview process and have history of upsetting recruitment companies (we keep on asking for candidates but no offers). There was not even a single question which I asked her and she had to think. She always had a way to solve the problem instantly, not always the best way but she always knew in which direction to go. Her interview went for 3 hours then I told Shyamal she is really good. He was pleasantly surprised as I have not said that often so he went to talk to her. He talked to her for another 2 hours. Thats a good sign when Shyamal doesn’t send someone back in first 15 minutes.

She is spontaneous - Always has a solution
She is VERY hard working - Travels daily for 2 hours (one way) in ‘local transport’ and usually one of the last ones to leave office. And yes mostly among early comers too.
Extremely dedicated - She is one of few persons I have never seen taking a break.
Desire to learn - Never settles with the solutions, she always wants to know why? how?
Dependable - If any work is assigned to her, you can be sure it will be done and she will not rest until its done.
Proactive and Responsible - Even when she was over loaded she volunteered to take up second project.
She is very emotional - She scared everyone on her first day when she started crying during our group lunch. She was missing her colleagues from old company.

We thought she was a very serious person until we went on our river trip. It was so difficult to get her out of the water :) Sapna is one of our ‘jinis’ :)

Writing good code - Design patterns group formed

August 6th, 2009 by Amit

This is how we at TechJini define good code
- Code that fulfills customer requirement. This is the most important of all, no matter how you have coded, what process you have followed if it doesn’t do what is expected of it, its useless. Ofcourse has to be bug free.
- Easily maintainable code. Do not write thinking that you are responsible only for version 1.0. Think ahead, code should be very easy to maintain. Easy maintenance include - easy for new team members to understand, easy to test, easy to change/add features, well documented etc
- Reusable. Code which can be transformed into components and reused.
- Thoroughly tested, test cases should have full (maximum possible) code coverage.
- Future and change ready.

There are several things we can do to ensure that we write ‘good code’, one of the way is to start with good design. Understanding and having ability to correctly utilize OOP concepts and design patterns. To ensure that everyone in our company is a master we have formed and started TechJini Design Patterms study group. We had our first class yesterday which covered introduction of OOP concept and healthy discussion covering real life examples trying to model real life problems. Its clear that everyone has good base and is an expert in analysing and applying OOP concepts, so we expect to have good discussions in future.

Next session is about Abstract Factory Pattern. Looking forward to it.

HTC Magic - android phone in India total let down

July 17th, 2009 by Amit

UPDATE 18th Aug 2009:

Finally fastboot problem of perfected SPL is taken care of. We were able to flash new ROM on our android. Google Maps, Android Market, Gmail, Quickoffice, youtube etc are available.

We also tested our application Aw’ Shugs, need some tweaking.

Following links were extremely useful.
http://forum.xda-developers.com/showthread.php?t=548218
http://forum.xda-developers.com/showthread.php?p=4335330#post4335330
How to create GoldCard

All credit goes to xda-developers guys.
————————————————————————————
We bought HTC Magic India’s first and only android phone hoping to test our applications but it has been a total let down. Complete waste of money.
- Cannot root it. SAPPHIRE PVT 32A SHIP S-ON H, HBOOT-1.33.0010 (SAPP10000) CPLD-12 which cannot be rooted.
- There is no android market
- There are no applications by default for eg google maps.

All you get is an expensive touch phone with normal features and no useful app.

We called at least 30 dealers before purchasing and none of us any idea what is android market and whether handsets will have it or not. Only response was buy it to find it. I contacted HTC support asking them how to install google maps, they gave me long instructions on how to use android market to install google maps :) Anyway, it took 3-4 emails and then they realized this handset does not have android market with no immediate plans to release it.

If you are planning to buy HTC magic (India) for development, don’t.

Images after upgrade:

Phone after the upgrade | newdevice2.png

Tools for iPhone UI (user interface) design, mockups, wireframes or just a sketch

July 9th, 2009 by Shyamal

iphone-mockup.pngWe tried several tools and methods for user interface designing of iPhone applications. We now use a combination of these tools and our choice depends on what best suits the product as well as the customer. The key point is communicating the design clearly to both the customer and developers.

Before going into details, let me just list the iPhone design and mockup (wireframe) tools/methods in no particular order:

  1. Use Interface Builder (Mac only)
  2. Use Balsamiq mockup tool (Mac, windows, linux) - http://www.balsamiq.com (http://www.balsamiq.com/blog/2009/03/01/iphone-controls-new-icons-and-much-more/)
  3. Use Omnigraffle (Mac only) and import an iPhone stencil - (http://www.omnigroup.com/applications/omnigraffle/download/ and http://www.graffletopia.com/search/iphone)
  4. Use paper and a stencil- http://www.designcommission.com/shop/iphone-stencil-kit/
  5. Use a pre-printed sketch paper - http://labs.boulevart.be/index.php/2008/06/05/sketch-paper-for-the-mobile-designer/
  6. Use photoshop and the iPhone PSD - http://www.teehanlax.com/blog/?p=1628
  7. Use Adobe Fireworks - http://blogs.adobe.com/fireworks/2008/08/iphone_gui_as_adobe_fireworks.html and http://www.building43.com/videos/2009/06/23/mockup-iphone-app-adobe-fireworks/
  8. Although not there yet, you can try http://iphonemockup.lkmc.ch/
  9. Use the stencil kit from Yahoo! which is available in a variety of formats - http://developer.yahoo.com/ypatterns/wireframes/
  10. Use the sketchbook available at http://www.mobilesketchbook.com/

Some bonus stuff

Lazy as I am, I decided to write details about each iPhone UI design tool later, so till then please use the list above and explore them.

If I missed your favorite tool, please let me know in comments and I will gladly add it here.

Aw’ Shugs Free version now available

July 1st, 2009 by Shyamal

After 10 days in review, Aw’ Shugs Free is now available on the iPhone App Store. The update to the paid version is still under review.

The only difference between the free and paid versions is that the paid version allows users to catch shugs anywhere and not just limited to a range around their current location.

Enjoy!!

Available on the app store