Posts Tagged ‘Titanium’

Interview with Julian Buss of YouAtNotes

Wednesday, August 8th, 2012

YouAtNotes IBM Lotus Notes has been enabling large companies to provide a collaborative environment for their employees since 1989. Since then, it goes without saying that it has received many updates, one of which enables its use from a mobile device. YouAtNotes, one of the few members of the IBM Design Partner program, has released a platform for Appcelerator Titanium that allows developers to integrate their apps with IBM Lotus Notes. Their solution, Domino to Go, allows developers to synchronize and work with Lotus Notes data. They have also recently put out their own application, NotesBook, which utilizes Lotus Notes via the Domino to Go platform. Recently, Tony Lukasavage of Appcelerator had the chance to sit down with Julian Buss of YouAtNotes, and speak about both Domino To Go and NotesBook.

Interview with Julian Buss of YouAtNotes

So tell us a little bit about NotesBook and Domino To Go

YouAtNotes Domino To Go is a framework for Titanium that enables IBM Lotus Domino and XPages developers to synchronize and work with Lotus Notes data to the mobile App. Without Domino To Go, a Domino developer would have to implement much more code in order to get data out of Lotus Notes via HTTP, or to push data back to Lotus Notes. Furthermore, it’s hard to find a good way to store and work with Lotus Notes data on the mobile device, since Lotus Notes is a NoSQL database and the mobile device uses an SQL database, which is a combination that generally does not fit well.

YouAndNotes

All of these complicated issues are completely solved in YouAtNotes Domino To Go. And furthermore, the Domino To Go API follows exactly IBM’s standard LotusScript and JavaScript API for Lotus Notes, making it very easy to use for Domino developers.

Finally, Domino To Go is designed for offline usage from the ground up. So a developer can use Domino To Go to synchronize Lotus Notes data to the mobile device and work with it on the device when it’s offline. New and changed data will be uploaded back to Lotus Notes automatically when the device is online again.

We feel that offline usage is very important for business Apps, since there are so many situations where you don’t have a network (underway, in buildings, in foreign countries and so on).

So in short: when you want to mobilize an IBM Lotus Notes or XPages application so that it works offline and has the look & feel of a native App, the best solution is Appcelerator’s Titanium and YouAtNotes Domino To Go.

NotesBook is one App that I built with our Domino To Go framework. It solves a huge problem for many IBM Lotus Notes users: the journal (notebook), which is built in Lotus Notes, is not synchronized to the iPhone and iPad by IBM’s standard synchronization software, Lotus Traveler. So there are many users out there who have important information stored in their Lotus Notes Journal that they cannot access from their iPhone or iPad. NotesBook not only synchronizes the content of the Lotus Notes Journal to the iPhone and iPad, it even allows mobile users to create new entries, edit existing ones and download images and attachments.

YouAndNotes

Technically that was kind of a challenge because Lotus Notes Journal entries are not plain text but RichText, which means text formatting, tables, embedded images, attachments and so on. The Lotus Notes RichText format is old and does not follow any known standards; as an additional difficulty, there was no way to change any code in the Lotus Notes journal applications on the user’s side. This means I had to use the standard HTTP JSON and XML services that are build in the IBM Lotus Domino server.

But Titanium and our Domino To Go framework provided me with all the tools I needed to solve these issues and now NotesBook is live in the Appstore with many happy users.

Why did you pick Titanium for your app development?

I was not satisfied with the possibilities of a web app on a mobile device. It’s hard to make web apps look like a native app and the device would always need to be online and web apps do not have access to the device sensors and so on. I tried hybrid solutions like Phonegap that solve the sensor issues, but the look & feel is still far from that of a real native app. Further, I didn’t like the method of coding in Phonegap with all the callbacks.

So I quickly came to the conclusion that native Apps are the way to go. For me, Objective C for the iOS platform has a huge learning curve, since I lost contact to the C language long ago. And coding Objective C for iOS and Java for Android would prevent any code sharing between the platforms. All of this lead to the only logical solution: Appcelerator Titanium.

What were some of the highlights of Titanium development for you?

The fact that I can write native Apps using simple JavaScript is clearly a highlight. It helps me focus on my App rather than on coding issues.

The Titanium API is logical and easy to follow, and since Titanium 2.0 it’s well documented, too. Working in Titanium Studio is very easy, since it’s Eclipse based and follows all the familiar conventions.

Furthermore, I like the Q&A section of Appcelerator’s website, I found a lot of good answers there.

YouAndNotes

How many people worked on it? How long did it take to design, implement, and test?

I created the core of Domino To Go and NotesBook. Now we’re in the process of leading other developers to Titanium and Domino To Go.

What resources did you use to learn and develop with Titanium?

I learned a lot from the Q&A section of the Appcelerator website and the kitchen sink example.

In the early days of Titanium the API documentation was not very helpful most of the time. But, as of today, it’s a very good reference that I’m using often. Furthermore, I read a lot of articles in the Titanium Wiki.

Was your app built with the Community edition of Titanium?

Yes

Do you have plans for updates to NotesBook or future Titanium apps? Care to share some details?

Sure! The more customers are using Domino To Go, the more feedback we get and the more improvements and new features are built into the framework.

Regarding NotesBook, I plan to add a feature to synchronize multiple Lotus Notes Journals to the mobile device, which enables companies to distribute any kind of Lotus Notes documents to mobile devices simply by using the free Lotus Notes Journal application and NotesBook.

Any additional thoughts or notes on Titanium development?

I love it. And I can highly recommend Titanium for every developer that wants to write great native Apps.

What’s your background as a developer, particularly mobile development?

I studied computer science and made my degree back in 2000. Currently, I’m in the IBM Lotus Notes and Domino business for which I founded my company, YouAtNotes, with two partners.

Working for YouAtNotes, I developed various sophisticated software products, such as a workflow and CRM solution for the Lotus Notes client. More recently, I engaged in the web application business with IBM Domino XPages.

I played with multiple platforms to create mobile web apps (IBM XPages has a lot of cool built-in support for that), but I missed offline functionality and the native look and feel. After some research, I stumbled upon Titanium. I tried it and fell in love.

My company’s head office is the beautiful city of Hamburg, North Germany.

In my spare time and during vacations, I’m a captain cruising the Baltic Sea with my family (wife and two kids). In that role, I’m diving into marine electronic and computer technology, which is fascinating, too.

1.) Domino To Go, the Titanium framework to mobilize IBM Lotus Notes and XPages Apps: http://youatnotes.com/dominotogo

2.) NotesBook App for iPhone and iPad, to bring the Lotus Notes Journal to the iPhone and iPad: http://youatnotes.com/notesbook

3.) Like us on Facebook: http://facebook.com/YouAtNotes

4.) Google Plus: https://plus.google.com/107818550355220576809/posts

5.) My blog: http://julianbuss.net

Big thanks to YouAtNotes for taking the time to give us some insight into their experience and success with Titanium app development. We know the rest of the community, as well as the Appcelerator team ourselves, get excited when we see beyond what is possible with Titanium to what is now reality.

Do you think that you and your Titanium app should be highlighted on the Appcelerator Developer Blog? Send us an email at community@appcelerator.com and we’ll see if you have what it takes to join the ranks of our other featured developers. We hope to hear from you soon!

Developing the iPhone App Streets with Titanium

Monday, June 27th, 2011

Editor’s note: The following guest post was written by Ivan Markovic, who is a member of the Appcelerator Titan’s program. After getting a degree in Drama and Computing Ivan spent 8+ years at Adobe working in the Advanced Technology Division where he helped introduce PDF to the world. Over the past 10 years he’s been acting as an Independent Consultant focusing on PDF based Java technologies as well as front end and UI expertise. These days he split’s his time between developing Apps for the UKs largest independent Estate Agent and designing and developing Apps for magicians and musicians. He also finds time for designing and developing lighting sculptures.

I recently developed a magic iPhone Application using Titanium, called ‘Streets’. In the end I have to say that it turned out to be considerably more arduous, stressful and fraught than I thought it would be!

So some background… I’m a magician, a member of the Magic Circle here in the UK and recently Penn & Teller recorded a pilot for a new show called ‘Fool Us’ where they invited magicians to see if they could fool them with a magic trick. A magician called John Archer was able to do just that and so with him being a hot property I approached him to develop an iPhone App.

He had an idea based on a trick he released a number of years ago that involved the use of a map, where the spectator leafed through an A-Z Street map of London and stopped on any page and chose any street. The magician was then able to tell the spectator which street they had chosen! A very powerful effect and not cheap.


  

So here was an opportunity to develop a very different and original iPhone App and to use John Archer’s increased visibility to help with marketing. Marketing is essential these days as unless your App goes viral it just won’t sell. So you need to have an outlet, a marketing budget or a route to high profile Twitter personalities otherwise it will just die on the vine.

I have to be very careful as to what I say about the App as I can’t reveal the secret but the main facet of this App was to create an environment that replicated the existing iPhone UI but I was concerned that I might have some trademark issues so I decided to rush together a very basic version of the App with minimal instructions and to see how it fared in the review process. The idea being that I didn’t want to spend weeks developing an App that Apple then ended up rejecting for reasons that I couldn’t code around. So this was me just testing the water.

Well as it turned out Apple did reject the App but not for the reasons I suspected they would! Fortunately with regard to their objections I was able to demonstrate that there was precedence and that they couldn’t legitimately reject my App having accepted the others. This argument ended up being persuasive and they changed their decision.

This allowed me to continue developing the App knowing that in essence Apple didn’t have any problems with the process, structure or use of trademarks. Depending on the nature of your App it might be a good idea to go for an initial ‘test’ release, especially if you have concerns that approval process might be treacherous.

The next problem I had was testing, I test on the 3GS but John Archer has a 4G phone. I’ve developed a number of Apps before and never had any platform issues but suddenly the App was crashing on the 4G phone but not on the 3GS phone! It was a nightmare, like a typical non-technical user I was getting reports that “It’s not working” or “It crashes when I open a map”! Educating them to provide you with a proper test environment, a route to the crash and something I could replicate was painful especially that when I did get hold of the details I couldn’t replicated it on the 3GS!

It was then that I realized the Retina display was the problem. With 2x resolution the memory footprint quadruples and I was simply exceeding the limits imposed on the App. But the strange thing was that with a small adjustment to the images I was able to get it all running; but then suddenly it started crashing again! I found that if I ran the App it all worked fine, but if I switched to another couple of Apps and then switched back it crashed! It seems that iOS was somehow paging out the memory and then loading it back in when the App was reactivated and this is what was causing the crash.

After much fannying around I realised the only reliable route to a solution was to make the App exit when suspended, so that it loaded from scratch every time it was started. Yes this does delay the start of the trick but it’s the only reliable way to run the App. In order to do this I created a modified info.plist and added the key/value pair:

I then finished testing and released the App to the Store, where it was approved within days (the initial rejection took about 10 days, seems to be average). All seemed well at first and the reviews started to come in but then we started to see complaints from iPod Touch users. It was crashing on launch and as I didn’t have an iPod Touch I’d never tested against it. What I really should have done was to have popped into an Apple Store and installed it on one of their test devices and given it a test drive there (I have an Enterprise account so this makes distributing Apps remotely a lot easier, as it can all be done via a URL without need for a UDID).

I started taking note of all the E-Mails I was receiving and informed everyone that an update was on its way. I was very careful to make sure that a support E-Mail was very visible on iTunes and that it was also visible on the various support pages. That’s absolutely essential; if the user can’t report and issue and doesn’t receive timely and satisfactory feedback they’ll write a negative review and we all live and die by our reviews.

I kept in touch with the iPod Touch users when I released the App to the Store (even including one of them in the testing process) and then again notified them when the App went live. The result was a group of initially unhappy users now very happy and satisfied. The only problem we have is that the effect is so strong that magicians are wanting to keep this to themselves, so I’m working hard with magazine reviewers and with celebrities to get endorsements. This App is never going to be viral but it’s going to be a slow burn. No I’m not going to make a mint, I’m not even going to even cover half of the time I spent on the development however it’s now a well respected and acknowledged App and is doing quite well as a ‘calling card’ for me; as I am move more into the non-business Apps market.

I’m not a C programmer and never really want to be, but I have been programming for 30 years and the Titanium development environment allowed me to create a very powerful App rapidly and I found the Professional support package essential to help me navigate the peccadilloes of the iOS platform.

So if you want to see how all of this time, effort, sweat blood and tears has manifest itself then search for ‘Streets’ in the iTunes Store… Yes I have to say that I still can’t believe that after over a year of App releases no one had developed an App called ‘Streets’ not in the UK or the US; I was very lucky with that name.