Tuesday, November 27, 2012

Business Rockstars

Lolay had the pleasure of joining Business Rockstars (KFWB - 980 AM) on the air last Wednesday, November 21st. The show was created by Ken Rutkowski and Steve Lehman as a platform for entrepreneurs to share their successes and adventures. 



Check out the details:  http://businessrockstars.com/br/2012/11/business-rockstars-ep113-wed-1121

Thursday, October 4, 2012

App Store (iTunesConnect) Categories

For some reason, I always find myself looking around for the iTunesConnect Primary and Secondary Category names when submitting a new iOS app.  Here they are:

Book
Business
Catalogs
Education
Entertainment
Finance
Food & Drink
Games
Health & Fitness
Lifestyle
Medical
Music
Navigation
News
Photo & Video
Productivity
Reference
Social Networking
Sports
Travel
Utilities
Weather

Saturday, September 29, 2012

Xcode Presentation Mode

So you're hosting a code review and Xcode is up on the projector (or screen-share via Skype).  You look around and notice folks are squinting their eyes (most engineers won't admit their vision is getting worse from coding all those years).  

There are a few options to get that font larger and sharper so that even the folks in the back of the room can see what you're talking about when you say "I created a pointer to a pointer of NSError so I can return it from my function as an additional parameter."  My favorite option so far:  The Xcode Presentation Theme.

To set Presentation Theme, open Xcode Preferences, go to Fonts & Colors, then select Presentation from the Theme list on the left.  All appropriate fonts get larger, and the Xcode interface itself stays untouched.  Here's a screenshot of the Preference setup:


It's really easy to revert this back to your previous Theme and not mess up your monitor settings, projector settings, or have to use screen zoom that can create blurry text.  Now that's Gangnam style.


Wednesday, June 27, 2012

iOS From HTML5 Back to Native

It's interesting to see the trend of iOS apps that moved from a pure native experience to an HTML5 hybrid experience and are now moving back to a pure native experience. Or in a few cases started out as an HTML5 hybrid experience first. Case in point is that Facebook has finally admitted how buggy and poor performing this exercise has been.

At Lolay we often get a first hand look at such bugs and performance issues with a hybrid experience. We often get asked to rewrite an HTML5 experience back to a native experience as the products just are not snappy enough of an experience for end users. Facebook is no exception, and we've often used the Facebook app as an example of what performance you can expect with a hybrid experience.

There are a number of issues we run into with hybrid experiences.

  1. Too many applications try to replace the entire app logic with HTML5. They use the app as a shell rather than in key, strategic, critical places.
  2. HTML5 Javascript and CSS downloads are way to heavy and large to download over mobile.
  3. iOS WebView's have notoriously poor performance, and Android is not significantly better on a year old device.
  4. Caching to prevent excessive downloads of CSS and Javascript can cause a large amount of bugs as Javascript and server side are not necessarily updated at the same time. This takes a strong asset versioning approach to get around these issues.

In all honesty, it's not that a hybrid application is bad. It's just that the HTML for a hybrid experience needs to be used strategically and as light as possible. Here are some our best guidelines for such an experience.

  1. Abandon Javascript and a Web 2.0 interface in your apps. You're better off utilizing a very lightweight XHTML request/response interaction with minimal CSS and very minimal javascript (i.e. if it can't be inlined, then consider not using it).
  2. Perform all navigation natively. Keep the HTML for content only that needs to be updated easily without an app update. A great example of this is Urbanspoon or Zite.
  3. Perform no animations, scrolling, moving in the HTML itself. Keep that all native.
  4. For any button actions or similar perform this as an in-app scheme (i.e. your-app://) that is handled natively.

Following these guidelines can lead to a successful hybrid application, although it can be challenging for an organization to think in a lightweight manner.

Tuesday, February 21, 2012

iOS Custom UISwitch

On an iOS project we had the need to provide a custom UISwitch similar to the following.



With iOSS 5 there is quite a bit of support for interface customization. It's great for customizing almost every control in iOS, except... UISwitch. The only thing customizable with UISwitch is the tint color, which is pretty limited. So, iOS 5 is out for supporting this customization.

Next, we looked at several existing open source projects. There are several out there that support a customized look and feel, but none of these had the "feel" of the built in UISwitch control from Apple. Some would allow dragging, and some just clicking, but none allowed both a click and drag interaction.

There was a strong desire for the switch to behave just like the standard UISwitch that supports both a click and drag interaction. That led us to create our own. We were able to support the look and feel and mimic the behavior of UISwitch by implementing a custom drawRect as well as a custom touch handling. Check the Open Source implementation.

LolayUISwitch.h
LolayUISwitch.m

Next, we hope to extend this to support setting the "on" value with animation, and additionally adding in support for all the autoscale settings of iOS on a UIControl. Also, thoughts of supporting a UIView rather than just a UIImage.