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.
Tuesday, February 21, 2012
Tuesday, December 20, 2011
MyLife Android
It was great partnering with MyLife to launch their Android application. Beyond the longstanding People Search of MyLife this contains a great way to see and post to all your social networks in one place. It makes "crossposting" and replying a breeze.
Or, if you like to see a tour, check out the YouTube video.
Wednesday, October 5, 2011
Dear Steve, we wouldn't have...
Dear Steve Jobs:
Thank you for being inspiring, innovative, and just an incredible person. Reading the blogs, news articles, and other press, we have to agree with all the positive statements about your life and contributions. Without those contributions, us and our family/friends:
- Wouldn't have had this revived industry to create our startup mobile software company
- Wouldn't have the ability to see to see loved ones realtime on business trips without a PC or Mac
- Wouldn't have had that amazing feeling when the brand new box from Cupertino showed up at our doors (too often sometimes)
- Wouldn't have realized that American ingenuity and passion can still mean something in the 21st century
- Wouldn't have missed you as much as we do
Sincerely,
Lolay, Inc.
Thursday, September 15, 2011
App Upgrade Adoption
Here's an interesting adoption plot of active users on a particular version of a major social networking app on the iOS App Store (In this case it was a Universal App). What it's interesting to point out is two different upgrade scenarios.
One scenario (Dark Green to Mustard) is where adoption is organic through the App Store and relying on the app store itself to notify the user. The second scenario (Mustard to Blue) utilizes an alert dialogue to let the user know a newer version is available with a direct link to the download in the app store. Here's the comparison.
In a nutshell App Upgrade Adoption is slow, but you can certainly speed it up with an Alert when the user launches the app to let them know to upgrade to a new version.
One scenario (Dark Green to Mustard) is where adoption is organic through the App Store and relying on the app store itself to notify the user. The second scenario (Mustard to Blue) utilizes an alert dialogue to let the user know a newer version is available with a direct link to the download in the app store. Here's the comparison.
| iOS Organic Adoption | iOS Alert Adoption | |
|---|---|---|
| 25% | 2 Days | 2 Days |
| 50% | 5 Days | 3 Days |
| 80% | 12 Days | 6 Days |
| 90% | 21Days | 14 Days |
| 95% | 23 Days | 15 Days |
In a nutshell App Upgrade Adoption is slow, but you can certainly speed it up with an Alert when the user launches the app to let them know to upgrade to a new version.
Monday, September 5, 2011
Cowardly Lion
Ok, so I upgraded to Lion. Faster, better, smarter, right? Wrong. Trying to run a mobile development efforts for our organization has been a bit of an effort. As a background, I have a MB Pro i7 with 8GB of memory.
Here are the trouble pinpoints:
- Crashes (Safari, Xcode, iCal, Mail and even the Preview app!)
- Slow and laggy (Safari and Xcode)
- CPU out of control. I've come back to my machine after 30 minutes to find 400% CPU utilization.
- Finder/Icons gone. Sometimes during Xcode development, my icons disappear from the dock and I have no feedback as to which apps are running.
Here is what I've tried:
- Clear Safari cache/history
- Reset PRAM (http://support.apple.com/kb/ht1379)
- Delete Library/Caches and ~/Library/Caches
So what worked?
- Clearing Safari and my cache definitely improved internet performance.
- Resetting the PRAM stopped my out of control processes (high CPU)
- Deleting my caches seems to have stabilized the icons disappearing and some of the caches.
Will update this blog as I continue to be the Lion Guinea pig!
Thursday, August 18, 2011
What It Takes to Start Up...
This article is long overdue, but that in and of itself, should be an indication of what it takes to start something. My partner Gary Rudolph and I set out to change how/what our friends and family think about mobile about almost one year ago, and I really wanted to capture some of the thought process from beginning to end.
Intro:
There are plenty of articles out there that will try to teach you what it takes to start up a company. Please excuse any lack of instructions here as it's all from the heart. If you learn at least one thing new, or even question the current way you're running a startup, I consider this article a success.
The Phases:
There are many phases, as I would like to call them, that you need to go through for a startup. The number of phases is entirely dependent on starting capital and ability to execute. Each phase might be slightly different depending on the industry, experience, starting capital, etc. Our experience was fairly straightforward:
Phase 1: Be scared.
If I had to name the singlemost important skill, something that keeps everyone else from doing this crazy thing, it has to be courage. Or, the contra to that, would obviously be fear. Fear of no paycheck, fear of rock bottom, fear of the poor house, fear that my kids will starve. All of those need to go through your mind before you can move onto phase 2. If those ideas never popped into your mind, you aren't ready. Or worse... you're a VC. In either case, please stop reading. If you are a VC, jokes on us, please direct emails to love_funding (at) lolay (dot) com.
You need to have the courage to get past whatever it is that's stopping you, and jump off that proverbial entrepreneurial cliff so you can learn about yourself as a person. This phase is a lot easier when you have an awesome partner to go through it with you. By awesome I mean: Someone at your skill level or better, someone who is willing to put the same amount of time or more, and someone who can deal with your crap. That last part's critical, because it's very similar to a marriage; you get to keep half, and the kids [the idea] ultimately stay with one of you when you separate.
Phase 2: The idea.
Ok, so the idea was really there before Phase 1. I'm proud that you're catching on, but of course, there was some big idea that filled your empty time, that's what has gotten you through some tough days at work. However, prior to this moment, the idea was merely as a stretch goal. Something you could see yourself doing. It was never tempting enough to quit a job, or even take that less demanding job so you can really focus on the idea. This is the part where your addiction takes on a new shape.
The idea isn't the hero, you are. What do I mean by that? If you're stubborn and unwilling to see the idea morph and change based on needs, capital and demand, you're wasting your time. You sort of feel your idea taking over your every day thought process. When you speak with friends, you are only trying to learn more about how you can refine your idea so it has less holes. When you talk with family, all you can do is tell them about your idea...again.
Case and point: We started off with the idea of creating a social monetization platform that learns how consumers behave and helps them make the best choices depending on the time of day, previous tastes and ads they have really enjoyed (clicked on). Been there, done that (call us for more info). We soon realized it was the amount of time, energy and convincing (ourselves) we had put into this platform that made it important intellectual property.
It was incredible learning from it, but what we are doing now is 180 degrees different. Let's just say we are building the coolest mobile experiences for the greatest companies in Los Angeles. Being dynamic is critical to your livelihood and your sanity. If you are stubborn, you will fail. If you embrace change, it might make you a better person (as Gary puts it).
Phase 3: No sleep.
This is your time to shine. Can you look your wife in the eyes if you didn't give today 100%? In startup mode, you can't even look yourself in the mirror without giving 120%. We were working 100+ hours a week on slow weeks. My longest day ever was probably 24 hours straight of no sleep. I tried to sleep, but kept thinking of the big idea.
One major lesson learned: If the idea doesn't keep you awake at night, you either don't have a good idea or you don't believe in the idea. You better question your decision-making skills on Phase 1! Yah yah, you might have had a pushy partner that shoved you through phase 1, but why did you listen?
I remember having a meeting one morning at 9:30 AM in Malibu. We were typically working until 3 AM most days. Gary and I looked at eachother with our week-old beards and said: "Coffee?"
Mental note: Those are the fun days. After years of employment, management, analysis, and top-down pressure, we realized that creating is still the most attractive piece of this entire puzzle.
Phase 4: Go to market
Your baby is launched. It's live! You've made it, right? Think again. You need to acquire users, credibility, exposure and set your brand apart so journalists don't ask: "Oh, it's like that other app that does X, Y, Z?"
You will spend a lot of time following tweets, analyzing metrics and taking customer feedback. You will tweak your idea, refine, redeploy and have meetings to discuss the next iterations. You may even get lucky like we did and have some dough to spend on advertising. Great idea, let's blow thousands of dollars on banner ads each day... definitely lack of sleep.
Your family will likely stop answering your questions, and your wife will still completely support your intentions (oddly). All the meanwhile, the clock is ticking and you need to get past Beta so everyone in the world can enjoy your big idea.
Phase 5: Wait, we ran out of money? s*#@!
Oh no, the big idea took too much time to build. This happens, ALL THE TIME. The greatest ideas take time to execute correctly. It's all about your reaction and ultimate decision that will make or break you as an entrepreneur. In our case, we decided to bootstrap. We really believed, and still do, that we can run on lean cash flow and make something without the extra investment that would dilute our ownership. Every story is different, and I'm sure I can write an entire article on that decision alone.
Getting back to the topic at hand, what do bootstrappers do when they run low on capital investment (from their own checkbooks)? They help friends and colleagues achieve their goals for a little extra cash. We decided to commit some time to consulting so we could generate revenues that could be piped to our internal projects.
The decision was very simple: Take funding or consult and still retain 100% ownership. We decided we were very passionate about helping our colleagues in the same space, while also building our own confidence, and show that we can really kick ass when we aren't figuring out how to feed our families (Maslow's hierarchy of needs).
Phase 4.5: Getting back on track. Yes, this is phase 4.5, especially since phase 5 wasn't supposed to happen.
If you took investment money, you may pass go. Please don't read this next section as this phase is for the boostrapper-minded.
We got a little off track helping others succeed in the mobile game. I think the best way to illustrate this point would be through some Q&A:
- Do we regret anything? No, we learned more than we expected.
- Are we excited still? Yes, the market is still hot and ready for disruption.
- What are we waiting for? Downtime, mostly. We spend 95% of our time on customer service and delivery.
Gary and I are entrepreneurs, no doubt about it. Since day one, we have sacrificed family, our significant others, kids, dogs, career path, finishing grad school, and many opportunities that would have been great learning experiences. We have battled house floods, Grave's disease, Gout, and created poor credit scores. I wouldn't change any of it for the world.
Addenda:
Someone asked me the other day: How do you know you've made it as an entrepreneur? Quite simply, the day you believe you've made it is when you stop being an entrepreneur. Keep running, improving, changing and creating...
Monday, July 25, 2011
2011 11" MacBook Air vs. 2011 15" MacBook Pro Xcode Performance
I just picked up the just released 2011 11" MacBook Air in the hopes of using that to replace my 2011 15" MacBook Pro. In the event it didn't perform well enough it would be given to the wife (actually, this was the original plan anyways, so if it can be a decent development machine, all the better)...
Here are the specs (Both with Lion and Xcode 4.2 and iOS 5 Beta 4).
For me the only thing that matters is Xcode performance. I just a project with the following characteristics, and measured a build from the time of pushing play to the time of the simulator launching with the login on the build displayed.
Here are the specs (Both with Lion and Xcode 4.2 and iOS 5 Beta 4).
- Decked out 2011 11" MacBook Air
- 1.8Ghz Core i7
- 256GB SSD (The faster Samsung one)
- 4GB Memory
- Decked out 2011 15" MacBook Pro
- 2.3GHz Core i7
- 400GB SSD (OWC w/SandForce, not OEM)
- 8GB Memory
For me the only thing that matters is Xcode performance. I just a project with the following characteristics, and measured a build from the time of pushing play to the time of the simulator launching with the login on the build displayed.
- 224 Source Files
- 63 XIB's
- 419 Resources
Here are the results:
- Clean Build
- MacBook Air: 38 seconds
- MacBook Pro: 16 seconds
- Repeat Build (No Clean, Simulator Left Running)
- MacBook Air: 8 seconds
- MacBook Pro: 8 seconds
It was expected the MacBook Pro would be faster. From a clean build it's significantly faster. From an existing build where you're touching a few files Xcode indexing to know what's changed or not makes it a wash. As most of the time we're just changing a couple files at a time the MacBook Air seems fast enough for development, just knowing that the clean build will take almost twice as long.
Also, to explain the difference, the actual copying of resources, launching the simulator, etc. took about the same time. There was a moderate difference in the compilation time, but the static analysis is where the MacBook Air lost out. The MacBook Pro killed it with the extra two cores and processor speed.
Now, the debate... I think I'm going to try out the MacBook Air and see how it goes...
UPDATE: After using the MacBook Air I decided to stick with the MacBook Pro. That extra speed really matters when someone is looking over your shoulder. Particularly, at a client. Although, if you are used to a non-SSD MacBook Pro (particularly, the 2010 variety) you'll be happy with the performance of the Air.
UPDATE: After using the MacBook Air I decided to stick with the MacBook Pro. That extra speed really matters when someone is looking over your shoulder. Particularly, at a client. Although, if you are used to a non-SSD MacBook Pro (particularly, the 2010 variety) you'll be happy with the performance of the Air.
Subscribe to:
Posts (Atom)

