GreenGar Studios

Simple, fun, useful

Latest News

One of the reasons Brain Tuner, Whiteboard, and Flashlight 4 are seeing so much success on the App Store: they lack features.

I noticed this at Saigon Mobile DevCamp 2010. The easiest, most straightforward question to ask is: “Does your app do (x)?”

“Does your app find the user’s location inside a building?”

“Does your app integrate with Facebook and Twitter?”

If you say no, there’s a perception that your app is lacking in some way. It creates an assumption that you haven’t thought the idea through. It perpetuates the idea that whoever comes up with the most features, wins.

In other words: saying no, while it could actually be the better answer, sounds downright awful.

In June of 2003, Steve Jobs gave a small private presentation about the iTunes Music Store to some independent record label people. My favorite line of the day was when people kept raising their hand saying, “Does it do (x)?”, “Do you plan to add (y)?”. Finally Jobs said, “Wait wait – put your hands down. Listen: I know you have a thousand ideas for all the cool features iTunes could have. So do we. But we don’t want a thousand features. That would be ugly. Innovation is not about saying yes to everything. It’s about saying NO to all but the most crucial features.

I’ve worked on dozens of projects that have essentially killed themselves with kindness: piling on feature after feature trying to be all things to all users. This rarely ends well.

After a few years in the trenches, I think many software developers begin to internalize the Just Say No philosophy. Both extremes are dangerous, but I think Yes To Everything has a greater potential to fail the entire project. If you’re going to err on either side, try to err on the side of simplicity. Keep a laser-like focus on doing a few things, and doing them exceptionally well.

Source: Just Say No by Jeff Atwood

Well, they don’t use Skyhook anymore in all new devices. Since iOS 3.2 in April 2010, Apple has been using its own database of cell towers and Wi-Fi hotspots. They’re building it automatically with their iOS devices.

“For devices running the iPhone OS versions 1.1.3 to 3.1, Apple relied on (and still relies on) databases maintained by Google and Skyhook Wireless (“Skyhook”) to provide location-based services. Beginning with the iPhone OS version 3.2 released in April 2010, Apple relies on its own databases to provide location-based services and for diagnostic purposes.”

“To provide location-based services, Apple must be able to determine quickly and precisely where a device is located. To do this, Apple maintains a secure database containing information regarding known locations of cell towers and Wi-Fi access points.”

“Information about nearby cell towers and Wi-Fi access points is collected and sent to Apple with the GPS coordinates of the device, if available: (1) when a customer requests current location information and (2) automatically, in some cases, to update and maintain databases with known location information.”

“…the device intermittently and anonymously collects Cell Tower and Wi-Fi Access Point Information from the cell towers and Wi-Fi access points that it can “see,” along with the device’s GPS coordinates, if available. This information is batched and then encrypted and transmitted to Apple over a Wi-Fi Internet connection every twelve house (or later if the device does not have Wi-Fi Internet access at that time).

from the Apple response to Markey and Barton

Greengar’s newest app has just launched on the iTunes App Store:


Flashlight 4: LED Light for iPhone 4

It’s the first Flashlight app that gives you the option of a 100% completely black screen!

And the reviews are rolling in:

Light ★★★★★
by Todd okc

This light is better than the other one for the iPhone 4. This app gives you options and you can change views on your phone where you can see the clock or make it where nothing shows on your screen

Get this one! ★★★★★
by look before leaping!!

This had exactly the feature I wished for from the others, A BLACK SCREEN! It turns on the LED and then you can make the screen black. All the other apps I tried had art or white (iPhone 1-3 flashlight) screens. Maybe it’s just me, but I don’t need a flashlight pointed at my eyes in a dark room while I’m using a real flashlight. Great and simple and free… What more could you need?

Have an iPhone 4? Grab the free app now: Flashlight 4: LED Light for iPhone 4

(If you like the app, don’t forget to leave us a review on the iTunes App Store! Thanks.)

This is a minor update to Whiteboard Lite, with greatly improved iOS 4 support, some high-res art for iPhone 4, iAd, and a new info button.

If you like Whiteboard, please leave a review in the iTunes App Store. If you’ve previously left a review, please update your review. And consider buying the Pro version of Whiteboard as well :)

See all of Greengar’s apps in the App Store.

I think Apple is right. Flash is on its way out. Apple has a history of quickly moving to the latest and greatest, especially at the cost of breaking backwards compatibility.

One of the advantages of moving away from Flash: security issues. Quote from the US-CERT mailing list:

National Cyber Alert System

Technical Cyber Security Alert TA10-162A

Adobe Flash and AIR Vulnerabilities

Original release date: June 11, 2010
Last revised: –
Source: US-CERT

Systems Affected

* Adobe Flash Player 10.0.45.2 and earlier 10.x versions
* Adobe Flash Player 9.0.262 and earlier 9.x versions
* Adobe AIR 1.5.3.9130 and earlier versions

Other Adobe products that support Flash may also be vulnerable.

Overview

According to Adobe Security Bulletin APSB10-14, there are
vulnerabilities in Adobe Flash and AIR. These vulnerabilities
affect Flash Player, AIR, and possibly other products that support
Flash. A remote attacker could exploit these vulnerabilities to
execute arbitrary code.

I. Description

Adobe Security Bulletin APSB10-14 describes vulnerabilities in
Adobe Flash that affects Flash Player and AIR. It may also affect
other products that independently support Flash, such as Adobe
Reader, Acrobat, Photoshop, Photoshop Lightroom, Freehand MX, and
Fireworks.

An attacker could exploit these vulnerabilities by convincing a
user to open specially crafted Flash content. Flash content is
commonly hosted on a web page, but it can also be embedded in a PDF
and other documents or provided as a stand-alone file.

One of these vulnerabilities, CVE-2010-1297, is being exploited
against Flash Player, Adobe Reader, and Acrobat. Additional
information about CVE-2010-1297 is available in US-CERT Technical
Cyber Security Alert TA10-159A and US-CERT Vulnerability Note
VU#486225.

II. Impact

If a user opens specially crafted Flash content, a remote attacker
may be able to execute arbitrary code.

III. Solution

Update Flash and AIR

Adobe Security Bulletin APSB10-14 recommends updating to Flash
Player 10.1.53.64 or 9.0.277.0 and AIR to 2.0.2.12610. This will
update the Flash web browser plug-in and ActiveX control and AIR,
but will not update Flash support in Adobe Reader, Acrobat, or
other products.

To reduce your exposure to these and other Flash vulnerabilities,
consider the following mitigation technique.

Disable Flash in your web browser

Uninstall Flash or restrict which sites are allowed to run Flash.
To the extent possible, only run trusted Flash content on trusted
domains. For more information, see Securing Your Web Browser.

If you’re getting this error, it’s because you’ve updated Three20, and they’ve changed the way their library works.

The fix is here on github.com.

One key aspect:

I’m getting a “No such file or directory” error for a Three20 import.

All headers are now grouped by the library in which they reside. This means that if you’re importing a header from the UINavigator library, that you’ll need to use Three20UINavigator/ instead of Three20/. If you’re not sure which library a particular header resides in, just do a find src -name SomeHeader.h to find which library it’s in.

Three20UI, Three20Core, and Three20Network are some of the new directories (libraries).

Here’s a nice trick for pulling your app’s version from Info.plist at runtime:

[[NSBundle mainBundle] objectForInfoDictionaryKey:@”CFBundleVersion”]

(It’s an NSString*.)

If you’re an iPhone app developer, you know there are a handful of UIDeviceOrientation constants in the UIDevice class provided by Apple. The landscape options are:

UIDeviceOrientationLandscapeRight: The device is in landscape mode, with the device held upright and the home button on the left side.

UIDeviceOrientationLandscapeLeft: The device is in landscape mode, with the device held upright and the home button on the right side.

(The side that the home button is on is opposite of the direction you had to turn the device to get to that orientation; right and left, as stated above, are correct; they’re NOT unintentionally swapped.)

You might ask yourself, “Which of these orientations is more popular with users?” Until today, I didn’t know. But thanks to in-app analytics, I can answer that question for you now, at least in the case of USC iTommyCam, one of GreenGar Studios’ free apps.

Over the lifetime of the app, to date, these are the number of occurrences:

UIDeviceOrientationLandscapeRight: 22,934

UIDeviceOrientationLandscapeLeft: 33,238 (44.9% more common)

In terms of Unique Users:

UIDeviceOrientationLandscapeRight: 7,519

UIDeviceOrientationLandscapeLeft: 9,011 (19.8% more users)

In Sessions:

UIDeviceOrientationLandscapeRight: 16,868

UIDeviceOrientationLandscapeLeft: 25,325 (50.1% more sessions)

And perhaps most intriguingly, in Total Time Spent:

UIDeviceOrientationLandscapeRight: 47 days 14 hours 24 minutes 59 seconds

UIDeviceOrientationLandscapeLeft: 64 days 22 hours 51 minutes 52 seconds

In conclusion, I think I can safely say that Landscape Left is more popular than Landscape Right. It’s worth noting that the only orientation supported by Apple’s built-in YouTube app is Landscape Left. It looks like they made the right choice. Or maybe the decision to make landscape left YouTube’s only supported orientation has influenced users, and that’s what makes them prefer it today?

If you’re supporting one, why not go a step further, and just support both?

We’ve been working with lots of OpenGL code today, so I thought I should document some of the resources we’re using. These might prove useful for others, too.

Apple’s GLSprite Sample Code

Framebuffer Object 201 – GameDev.net

Official OpenGL Documentation for glFramebufferTexture2D, which is very closely related to glFramebufferTexture2DEXT() and glFramebufferTexture2DOES() [most importantly, for iPhone OS]

Using Framebuffer Objects to Render to a Texture - iPhone Dev Center

Using a Framebuffer Object as a Texture - Mac OS X Reference Library

Forum – Render to Texture Example – Related to this Developer Forums post on how to Blit from one GL_TEXTURE_2D to another

Framebuffer Object 101

GLPaint Dissected – Forays into iPhone OpenGL ES – Introduction

FBO direction – iDevGames – iPhone Game Developers Forum – Render to texture example

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); // notice the 'f'. is this guaranteed to fail?

rendering to an offscreen framebuffer – apple discussion forums

That’s all for now.

GreenGar Studios is proud to announce the immediate availability of the 1.3 update to Whiteboard Pro: Collaborative Drawing (iTunes link).

Actually, it was updated on February 10, 2010, but I only just got around to posting about it here :)

What’s new:

- Tabbed Color Picker, including an Eraser

- Shake Actions. You can shake for Tools or shake to Erase (Start Over)

- The Start Over Confirmation Alert can now be turned OFF

- Start Over no longer toggles the Tools screen

- The Network Activity Indicator now appears when a connection is being established

- Two-finger Touch Alert: You can eliminate the alert by going to the Settings app and setting “Drawing Tools Alert” to OFF

- Canvas Auto-Save is now set to OFF by default (change it in the Settings app)

Thanks for using Whiteboard! More updates are coming soon. Please post your suggestions below.

If you enjoy Whiteboard, please update your review for the new version :)

I know users have been requesting a dedicated Eraser for a little while now, so I hope you like my implementation of that.

Also, on an unrelated note, I found on YouTube this great review of Whiteboard Lite. If you’re not familiar with Whiteboard yet, take a look:

Work With Us

We're an iPhone app development company located in Los Angeles, California, USA.

Contact us at company@greengar.com.

Subscribe to our blog!

Delivered by FeedBurner