Posted by: Tharindu | December 8, 2016

Hiveage iOS App for Online Invoicing and Time Tracking

During last few months at Vesess, we have put immense effort bringing the Hiveage iOS App. Hiveage mobile app is for online invoicing and time tracking on the go mainly. Some of its other features include sending estimates, billing, managing connections, taxes, discounts, shipping, saved categories, branding and much more. Hiveage iOS app is in par with all other competitive alternatives Freshbooks for invoicing or Harvest for tracking. Hiveage brings all these features comprehensively with unique user experience. Even though app is available only for premium users, Signing up via web site enables to use app in trial mode for two days with full experience.

Hiveage is one of the best online invoicing and tracking tools available today and we’re pretty happy to bring the continuously evolving app for our users.

Here are few resources about our Hiveage iOS App Design, Development and Announcement.

How we designed the Hiveage iOS App

How we developed the Hiveage iOS App

Hiveage iOS App announcement

Posted by: Tharindu | February 22, 2016

RebelMouse Powered iPhone, iPad & Apple Watch Apps

It’s been nearly 3 years since I have first joined RebelMouse and it has been so wonderful to be part of this awesome team. During this time I was very happy to be part of developing some nice RebelMouse powered iOS apps for iPhone, iPad & Apple Watch, which are available to download on Apple AppStore.

TheDodo, RebelLabs, PowerToFly, RoarSummit , Earthables, HigherPerspective


Dodo        IMG_1806                                                                                                                                                                       

Posted by: Tharindu | December 31, 2013

Cricket365 Australia iPhone app for Aussie Cricket Fans

After Cricket365 Sri Lanka initial app, I have worked on the next Cricket365 iPhone App on my free time for Australian Cricket Fans with the help of my friend Julian doing a super looking design. With a beautiful customised iOS7 new look Cricket365 app would be handy to Aussie Cricket Team lovers to get instant News, Videos, Images, Live Scores on their loving Cricket Team. Additionally, Aussie fans can now listen to ABC Grandstand Sports Radio Live Commentary and broadcasts within the app.

             3      4      5      

I’ve been in love with Cricket for number of years since my early school days. And I also felt in love with iOS and mobile development started from my university days. Ever since, then I had this idea of making an app for stay updated with Cricket specially for Sri Lankan Cricket Team. For my idea to become reality my friend Julian made a super design some months back for this new idea after Sanhinda app we did two years before for LiteDreamz. And finally, after working for number of months on little spare time I got I was able to submit the app for Apple AppStore. With Cricket365 – Sri Lanka app you could check out Live Scores, Image Gallery, Sri Lanka Cricket Official Youtube Feed Videos, News from CricInfo, Home Page with Key victories for Sri Lankan team, Update Twitter, Facebook status from within the app and you could also share Videos, Images in App.


Last few months were so much interesting being part of a great team working with an app for RebelMouse. My university colleague Kasun introduced me to the RebelMouse CEO Paul Berry (former CTO of HuffPost) and CTO Nike Gurin-Petrovych in early February this year. After being in trial for two months, I was privileged to be a full time rebel joining this talented team, working from worldwide. From June, I started working full time with a very talented developer Andrey from Ukraine on making this exciting app. RebelMouse iPhone App got continuously improved with comments from all team mates everyday before we have this exciting initial version in Apple AppStore to be downloaded.

You can also find my RM site, which is curated with all my social feeds here.


I have been working on Wizzle app development for over two years part time teamed up with a talented J2EE architect Robert Rudics from Switzerland with his team. It was all about bringing up a great set of features for people to interact with friends and other users of Wizzle nearby. Wizzle enables users to instantly chat, call, connect (message, image, video) with people nearby without needing even a sign-up. All you need is to launch the app and see people nearby. And you could fill up your profile later may be to explore more and more friends with Wizzle network. With this nice app you could message, send your location, send images, send instantly recorded videos and call them for completely free without any advertising. Travel mode is a cool feature with Wizzle where you search for friends in a all new way of changing your location on a map. And it’s really cool that it featured in 2012 event with Big sponsors like Redbul and Zurich.




App screen shots


Posted by: Tharindu | September 3, 2012

Elephanti iPhone app for Smarter Shopping

Elephanti iPhone App has been a great effort of a small team of developers, designers [more importantly close friends] located in Colombo, Sri Lanka. Mr. Lalin Michael Jinasena [Founder, CEO of Elephanti] has come up with this revolutionized idea and worked with the team in making people shop smarter with Elephanti. It has been an entertaining and exciting one and half years of developing this fantastic app. And finally with more exciting features yet to come, Elephanti App is now available for users on Apple AppStore. I feel really lucky to work as an iPhone developer on such a great app like Elephanti [Initially code named Lalinks] with our team. As the name implies Elephant[i] it’s really really big when it comes to features it offers to users and super [i]Interesting.

Elephanti App with its web site connects people to shops, people, offers in a smarter way on the go, because of that it creates a great retail media network among its users and merchants. For example, Elephanti is Smart enough to let you know that you are moving closer by an Offer that matches your Interests. With Elephanti app in your iPhone, you would be thrilled to shop in Elephanti registered Stores with Check-In discounts. Just a few to get you interested about the app.


Elephanti App ON ABC7 News ( Featured in 30th November, 2012 )


User Profile | Elephanti App | Store Profile


Nearby Offers | Elephanti App | Store Catalog



We formed a little team of four friends to make some fun time creative apps. සන්හිඳ (Sanhinda) is the first one for us to start with. In our team I am working on iOS development. And my friend Dulan works on Android. Julian with his experience does graphic design for us. Asanka, we usually call him Lokkaiya works on Web, PHP developments. All of us together makes a nice combination to bring our little crazy ideas into public. I had an idea of making Sinhala transliteration app from past looking at Google Transliterate & UCSC online transliterate tool and I have been using them for quite a while. iPhone had a lack of Sinhala Keyboard and also a transliterate app that makes Sinhala typing difficult on my favorite mobile phone. Therefore, We decided to make this idea live as the first step on Both iOS & Android. Sanhinda for Android was developed by Dulan and I developed the Sanhinda for iPhone.

Download Sanhinda Keyboard for iPhone by Me

Download Predictive Sanhinda Sinhala Typing Pad for iPhone, iPad and macOS by Me

Download Sanhinda for Android by Dulan


Sanhinda (සන්හිඳ) featured in iTunes Sri Lanka within 3 days of its initial release. Below is a few screenshots of it having top ranks in AppStore Sri Lanka.

#1 Free iPhone App in Sri Lanka

#1 Free iPhone App in Utilities Sri Lanka

Update 1: Sanhinda iOS app has been completely re-written in Swift on May, 2018. App supports full featured Sinhala keyboard and helping note pad to learn how to type in Sinhala using English keyboard.
Sanhinda – Type in Sinhala on iOS

Update 2: Predictive Sanhinda Sinhala Typing Pad and Keyboard for iPhone, iPad, and macOS was released on July, 2021. The app can self-learn your Sinhala typing and suggest predictions for Quick Typing.


Following is a little screen demo of සන්හිඳ for iPhone..

Few screens of the සන්හිඳ for iPhone..


Few screens of සන්හිඳ for Android..


Posted by: Tharindu | December 15, 2011

AES128 Encryption in iOS and Decryption in PHP

It was somewhat not straight forward getting this task done initially for me, but finally everything was fine with Objective-C & PHP on decrypting the text encrypted via iOS code with the help of Google & StackOverflow. So I thought of sharing successful piece of codes for iOS and PHP for this task on my blog. The problem with PHP is PHP does not support PKCS7Padding by default which is supported by iOS. So we need to unpad the encrypted text to make decryption successful at PHP code.

On Objective-C, we will extend NSData class and NSString class to have an AES128 encrypted string on iOS using categories. Basically, important AES128 Encryption code is listed below. But for easy reference, download NSData,NSString AES128 Categories from here. and add them to XCode project.

iOS Code

– (NSData *)AES128EncryptWithKey:(NSString *)key
// ‘key’ should be 16 bytes for AES128
char keyPtr[kCCKeySizeAES128 + 1]; // room for terminator (unused)
bzero( keyPtr, sizeof( keyPtr ) ); // fill with zeroes (for padding)

// fetch key data
[key getCString:keyPtr maxLength:sizeof( keyPtr ) encoding:NSUTF8StringEncoding];

NSUInteger dataLength = [self length];

//See the doc: For block ciphers, the output size will always be less than or
//equal to the input size plus the size of one block.
//That’s why we need to add the size of one block here
size_t bufferSize = dataLength + kCCBlockSizeAES128;
void *buffer = malloc( bufferSize );

size_t numBytesEncrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt( kCCEncrypt, kCCAlgorithmAES128, kCCOptionECBMode | kCCOptionPKCS7Padding,
keyPtr, kCCKeySizeAES128,
NULL /* initialization vector (optional) */,
[self bytes], dataLength, /* input */
buffer, bufferSize, /* output */
&numBytesEncrypted );
if( cryptStatus == kCCSuccess )
//the returned NSData takes ownership of the buffer and will free it on deallocation
return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];

free( buffer ); //free the buffer
return nil;

Now add the below PHP function at your server side to decrypt the text with PHP. 🙂

PHP Code

function decrypt_password($pass,$key)

$base64encoded_ciphertext = $pass;

$res_non = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($base64encoded_ciphertext), ‘ecb’);

$decrypted = $res_non;
$dec_s2 = strlen($decrypted);

$padding = ord($decrypted[$dec_s2-1]);
$decrypted = substr($decrypted, 0, -$padding);

return  $decrypted;

Today, I wanted to change Company Name entry in new XCode 4.2 project file templates. If it’s not set for the project by default Organization Name appears as __MyCompanyName__.

Earlier it used to be read from either ~/Library/Preferences/ file Or using Address Book entry for company under current user logged in. So I was wondering why it doesn’t appear on new files I add to the project with XCode 4.2.

defaults write PBXCustomTemplateMacroDefinitions


I had already added the ORGANIZATIONNAME key, but still had the default name in. Alternatively, I could have also changed the file templates in /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates or /Developer/Library/Xcode/Templates/File Templates. But it seem to be not really easy or useful, as I just needed to change company name entry only.

Finally, I found out there’s a very easy way hidden or unseen for me for some reason with new XCode, added 🙂 Select the project and look for the right pane. View > Utilities > Show File Inspector [option + command + 1]. Organization entry is there available for each new project.

« Newer Posts - Older Posts »