Posts Tagged 'iPhone'

UICollectionView Collection

So if you’ve paid any attention to new iOS 6 stuff at all, you’ve probably noticed that this UICollectionView thing sounds remarkably interesting:

A collection view is a way to present an ordered set of data items using a flexible and changeable layout. The most common use for collection views is to present items in a grid-like arrangement, but collection views in iOS are capable of more than just rows and columns. With collection views, the precise layout of visual elements is definable through subclassing and can be changed dynamically. So you can implement grids, stacks, circular layouts, dynamically changing layouts, or any type of arrangement you can imagine…

Yeah? That kinda strains your credulousness a bit, doesn’t it? Let’s look for a second opinion, shall we?

The Awesomest UI Class I’ve Ever Seen

UICollectionView is spectacular. The combination of a clear interface and incredible flexibility make it an absolute masterpiece of API design. The UIKit engineers who designed it have truly outdone themselves. It is by far my favorite feature of the iOS 6 SDK. Make sure to watch WWDC sessions 205 and 219 if you haven’t yet seen them…

“Awesomest”. “Spectacular”. “Masterpiece”. Don’t hold back, tell us how you really feel. How about a third opinion? A fourth?

… Barely containing excitement. :) ) UICollectionView* stuff is Magic, pure Magic.

… UICollectionView is fucking awesome. It will change the face of iOS apps.

“Pure Magic”. “Fluffily Awesome”. Yes, a concrete degree of enthusiasm can be ascertained there as well. Anyone else?

UICollectionView is possibly the most important enhancement Apple has ever made to iOS’s base control set … Expect to see amazing new UIs in iOS 6 apps that do things with visual data presentation that were never possible before. Expect to see dynamic grids that can be resized, reordered, and visually transformed in imaginative ways…

Well, then. Looks like UICollectionView winds hands down the Industry Achievement Award for “Most Gushing Fanboism Ever Over a Flippin’ API”, indeed. Looks like it’s pretty safe to predict that there’s going to be a lot of people doing nifty stuff with it, and we might as well get a jump on that by collecting the first few introductions to it out of the box here:

First off, if you haven’t got it already, we thoroughly recommend you head over to chez Wenderlich and pick up the iOS 6 By Tutorials book; the two chapters on UICollectionView are worth the price alone if you haven’t been experimenting with it already, and hey there’s 25 other chapters bonus covering pretty much everything significant new there is.

Second off, rather than completely splitting your presentation layer code at iOS 6, you might wish to look into steipete / PSTCollectionView:

Open Source, 100% API compatible replacement of UICollectionView for iOS4.3+

You want to use UICollectionView, but still need to support iOS4/5? Then you’ll gonna love this project. I’ve originally written it for PSPDFKit, my iOS PDF framework that supports text selection and annotations, but this project seemed way to useful for others to to keep it for myself :) Plus, I would love the influx of new gridviews to stop. Better just write layout managers and build on a great codebase.

The goal is to use PSTCollectionView on iOS 4/5 as a fallback and switch to UICollectionView on iOS6. We even use certain runtime tricks to create UICollectionView at runtime for older versions of iOS. Ideally, you just link the files and everything works on older systems…

Ideally, yes. In practice, no doubt this is a good opportunity for collaboration by us all, yes? (h/t: ManiacDev)

It’s even there for people too cool to use Objective-C:

Xamarin: Introduction to CollectionViews

RubyMotion: RubyMotion gets iOS 6, iPhone 5, debugger

And here’s other intros and tips to get you started … which will no doubt become a longer list in the nearish future:

UICollectionView Example (h/t @romainbriche)

How to Use NSFetchedResultsController with UICollectionView (h/t ManiacDev)

UICollectionView Sample code for iOS 6

A simple UICollectionView tutorial

UPDATES:

Example iOS Source Code Of A Customizable Coverflow Container Using UICollectionView

Beginning UICollectionView In iOS 6: Part 1/2 and Part 2/2

LXReorderableCollectionViewFlowLayout for iOS

Sticky Headers for UICollectionView using UICollectionViewFlowLayout

LXReorderableCollectionViewFlowLayout “Extends`UICollectionViewFlowLayout` to support reordering of cells.”

A Springboard-Like Layout With the UICollectionView Class

UICollectionViewWaterfallLayout “This layout is inspired by Pinterest. It also is compatible with PSTUICollectionView.”

How to Add a Decoration View to a UICollectionView

UICollectionView custom layout tutorial

MagrackCollectionView

Deleting cells from UICollectionView via NSNotification

Pinterest-style UICollectionViewLayout for UICollectionView

RFQuiltLayout “is a subclass of UICollectionViewLayout that positions various sized cells like a mason laying bricks.”

MSCollectionViewCalendarLayout ” is very similar to the “Week” view in the Apple Calendar/iCal app.”

UICollectionView Example with UICollectionViewFlowLayout

Workaround to vanilla UICollectionView+UICollectionViewFlowLayout using non-integral origins.

Custom iOS UICollectionViewLayout Modeled After The iCal App

Putting a UICollectionView in a UITableViewCell

mpospese / IntroducingCollectionViews has several samples from a conference talk.

How To Create A Rotating Image Wheel Using UICollectionView

Creating a Paged Photo Gallery With a UICollectionView

Open Source iOS Control For Easily Creating A Flowing Image Thumbnail Grid View

ASCollectionViewController “makes working with NSFetchedResultsController, UIMenuController and UIRefreshControl easier.”

Continue Reading →
0

A PonyDebugger For Princess Coders

So there you were squealing “DADD-EE, I want a PONY for my debugging!” and why look what those super helpful folk over at Square have come up with for you:

PonyDebugger: Remote Debugging Tools for Native iOS Apps

PonyDebugger is a remote debugging toolset that operates as a client library and gateway server combination using Chrome Developer Tools on a web browser to debug an application’s network traffic and data store. We began by implementing an iOS client library to debug our application’s network traffic sent via NSURLConnection and its Core Data stack. To get started, check out the GitHub repository.

Improved network traffic debugging is always handy, although our QA department has been managing to get by with Charles, but wait, what? “And its Core Data stack?”

Core Data Browser

Another cool feature of PonyDebugger is its ability to remotely debug an iOS application’s Core Data stack. By registering managed object contexts, a user can browse all of their entities, properties and drill-down relationships through Chrome’s IndexedDB browser.

coredata-example.png

The great advantage is that it doesn’t require access to nor implementation of an SQLite data store. This means that browsing data is easy, whether through the Simulator or on a real device. There’s also no difference between tracking an in-memory object store or an object store that has a SQLite persistent store, as it interacts directly with an NSManagedObjectContext.

Woah. How does that work?

How It Works

The WebKit Web Inspector, which Chrome Developer Tools is heavily based on, implements a protocol that defines all of the commands, events and types that each debugger “domain” implements. For example, the network debugging feature is implemented by communicating events and commands with Inspector’s Network Domain protocol.

Chrome Developer Tool’s Remote Debugging API exposes and documents (part of) its API for developers to communicate their own data to its developer tools application. We created an iOS client that implements this protocol and communicates a native iOS application’s network requests and managed objects to the developer tools through a WebSocket connection.

Well, that gets our Totally Awesome Award 2012 Edition™ hands down. Well deserved kudos to the authors for their great work and Square for open sourcing it for the rest of us!

h/t: @olebegmann! (And why yes pretty much all the rest of you reading this too, but we saw his tweet first.)

UPDATE:

Tool/Library Providing An F-Script Like Shell For Tweaking iOS Apps Remotely is a nicely complementary tool.

Continue Reading →
1

Tip: Unrecognized Selector Detection

Oooh, this is an extra special helpful tip for those annoyingly untraceable ‘unrecognized selector sent to instance’ annoyances:

Quick and easy debugging of unrecognized selector sent to instance

… All you need to do is pop over to the Breakpoint Navigator, click the + button at the bottom and choose Add Symbolic Breakpoint…

In the Symbol field enter this symbol:

-[NSObject(NSObject) doesNotRecognizeSelector:]

Now when any instance of any object within your program is sent a message to which it does not respond you will be presented with a backtrace that takes you right to the point where that message was sent…

Cool beans! That’s the first time in quite a while we’ve run over something worth adding to our standard breakpoint collection of

malloc_error_break

objc_exception_throw

_NSAutoreleaseNoPool

_objc_fatal

+[NSException raise:format:]

Any other breakpoints on your essentials list, Dear Readers?

h/t: iOS Dev Weekly!

Continue Reading →
1

Smart App Banners

Chances are you idly noted ‘Smart App Banners’ in the WWDC hoopla — oh, you didn’t? Well, to refresh your memory,

… Instead of those annoying overlays that many mobile sites show you to alert you of their mobile apps, Apple will use a more unified system in iOS 6. Instead of these banners, Apple will now show a link to the App Store (or to the app, if you have already installed it) when you open a site that also offers a mobile app. Apple calls this feature “Smart App Banners” …

– and didn’t think further than “well, that’s another mild annoyance smoothed out of the way”, right? Well, actually, they’re smarter than that; not only can they notify your web surfer of the native app, they can deep link into it:

Smart App Banners

… The second kind of problem that the banners solve in a smart way is to actually allowing website makers to deep-link to specific content. Like in the TED example above I’ve opened up a page of an individual video. If I have the TED.com app installed then tapping the banner button should also open up the app to this very same video.

This is achieved by the second (optional) parameter in the tag, named “app-argument”. This has to be a valid URL because it is passed as NSURL into the app, similar to launching the app with a custom URL scheme. Here TED.com simply passes the URL of the video page to the app because this is probably the permalink to this piece of content. Their app will know how to go to the video that corresponds to this URL…

Nifty, huh? Nagging the user to install an app, that’s mostly just annoying, but giving them a good reason to, now that’s useful!

Continue Reading →
0

NimbusKit’s NISnapshotRotation

In case you haven’t bothered watching WWDC 2012 Session 240, it’s one of the more interesting ones:

Go beyond the basics of rotations and learn best practices for getting maximum performance and smooth transitions between interface orientations. See when and how to use rasterization and snapshotting to create gliding animations, gain insight as to how the render server model works, and understand how some of the built-in apps on iOS get their visual effects.

And in case you haven’t bothered implementing snapshot rotation yet, now there’s a convenient Nimbus class for it:

An object designed to easily implement snapshot rotation.

Snapshot rotation involves taking two screenshots of a UIView: the “before” and the “after” state of the rotation. These two images are then cross-faded during the rotation, creating an animation that minimizes visual artifacts that would otherwise be noticed when rotation occurs.

This feature will only function on iOS 6.0 and higher. On older iOS versions the view will rotate just as it always has.

This functionality has been adopted from WWDC 2012 session 240 “Polishing Your Interface Rotations”.

Come to think of it, have we mentioned NimbusKit before? Hmmm … once in passing. But it’s worth another look if you skipped over it then; seems to be developing nicely. And it’s always refreshing to see an open source project that considers documentation worthwhile, isn’t it now?

h/t: @steipete!

Continue Reading →
0

Released: The Kraken

If you’re looking around for an open source 3D engine to mess with, here’s a new option:

Kraken Engine

Kraken Engine is an open source graphics / game engine written in C++ with OpenGL ES 2.0. It targets iOS devices (iPhone, iPad, iPod Touch) and is designed to be cross platform. It supports some features not found in most mobile engines:

  • Per-pixel phong lighting with specular maps, diffuse maps, and DOT3 normal mapping
  • Both forward rendering and deferred lighting pipelines
  • Multiple point and directional lights per scene
  • Post-processing effects such as vignetting and Depth of Field
  • Real-time shadow mapping with PSSM (Parallel Split Shadow Maps)
  • Asset pipeline imports objects, materials and scene graph directly from Autodesk FBX files

krengine-deferred-lighting-5.jpg sample2.jpg

Still under heavy development, but if that looks interesting, check out the code here!

Continue Reading →
0

App Rankings: AppStatics

Here’s a nicely done app for tracking App Store rankings while you’re out and about: AppStatics!

WHAT DOES APPSTATICS DO?

Here’s a quick rundown of the feature set:

  • In a tap, swipe and a glance, view the rankings of an app across various geograpic, device, and genre rankings
  • Bookmark apps for quick and easy access
  • Search the App Store to discover popular apps
  • Browse the apps that are newly popular, or rising to the top of the App Store rankings

Nothing overly novel, but in a nice package; and it’s free this week, so might as well check it out!

Appstatics

Continue Reading →
0

App Discovery

So you may have read our post a couple days back on how most apps don’t turn out strikingly profitable. If you didn’t, TL/DR: They don’t. What can we do about that, then? Well, the biggest stumbling block is discovery, we’d venture that pretty much everyone would agree. So here’s some thoughts on that:

How To Get A Massive Increase In Downloads With Some Simple App Store SEO

… The question with “app store SEO” is what keywords should you choose, and how do you get your app listed at the top of those keyword searches?

Invantory, developers of a new Craigslist app have written a pretty insightful post as to the tools and process they used chose keywords that made a dramatic increase in the number of downloads their new app has received…

app_store_seo_071512.jpg

Not bad, not bad. The secret sauce here?

AppCode.es – The Swiss Army Knife for App Store Optimization

Perform App Store SEO, track your competitors, dispense your apps’ promo codes effectively.

Check out their slideshare.net presentations:

AppCod.es – app store marketing toolbox

App Store SEO tutorial

App Store SEO #2 choosing keywords

New rules in App Store Search

And check out their U.S. store search engine:

Aside from guessing your competitor’s keywords, we can predict your app store search position and help you track it.

Good stuff, good stuff. At $14.95 a month, certainly seems like it’d be worth a spin to see if you can get results like the Invantory folk!

Another option in this field is MobileDevHQ:

Don’t let your app get lost in the sea of apps. Over 65% of consumers find apps via search in the app store. Use MobileDevHQ to analyze and optimize your app store presence and beat your competition…

Check out the video here: Optimize for App Store Discovery and sign up for a free 30 day trial — hey, why not — and see what they can do for you!

Finally, for a case study in how to plan to make an initial splash, some good thoughts for you in

The Art Of Launching An App: A Case Study  

UPDATES:

How To Contact Press (And Increase Chances To Get Press Coverage)

Five Big Changes In The iOS 6 App Store (And What Developers Should Do)

81 Different Ways to promote your mobile app / game

Top 10 App Marketing Tips from “Tap Your App”

Continue Reading →
0

EVFaceTracker

Now this is a seriously nifty idea:

Face Tracking

… I thought it would be nice if we could use the front facing camera of a phone for interacting with an app. I had to see if this idea could be implemented.

Since iOS 5 Apple has added a face detection api. My idea was to detect a face and estimate the distance the device is from your face based on the size of the detected face. If the rectangle of the detected face is big, then the device is close to your face, if it’s small, then the device is far away from your face. With a similar technique it is also possible to calculate the angle of the device in relation to the face. This angle is calculated based on how fare the detected face rectangle is away from the center of the screen…

… For implementing face detection in your own application I created a class that can easily be added plus a demo project that changes the zoom level and shadow offset for a text. The only thing you have to do in your application is to add the EVFaceTracker class and listen to a deligate message so that you can react on the rectangle of the detected face.

Pretty cool, huh? Source is on github, check it out!

h/t: ManiacDev!

Continue Reading →
0

Monetization: Reality Check

There’s been a couple posts over at the W3i blog recently worth checking out to guide your project planning:

Just How Much Money Can Top Mobile App Developers Make, and How?

… the average per-app revenue is roughly in the range of $1,200 to $3,900 depending on the platform. Additionally, Vision Mobile noted that an app has roughly a 35% chance of generating about $1 to $500. This obviously means that most developers simply cannot rely on app development as their main source of income…

Yowza. Check out this revenue model chart:

main-qimg-38c037ef7c6904dd670eaeb32fec0914.png

There’s some more fascinating stats in

Tips for Designing for App Monetization

The problem most app developers have is that they overly focus their initial design efforts on engagement and retention rather than monetization. Most developers believe that once they launch a highly engaging mobile app, they’ll get around to optimizing for monetization. The problem is that most apps achieve their peak traffic levels within the first three to six months of launch. By the time they get around to optimizing monetization, they already blew past their peak traffic levels and are declining quickly…

… the range of paying users on any given day was from approximately 0.02% (two one hundredths of one percent) to 0.1% (one tenth of one percent)…

Kinda sobering, indeed. To really put things into perspective though, check out (h/t @rwenderlich) this post on game availability for various platforms:

Those Are Mighty Big Numbers

How many games were published for the original Nintendo Entertainment System? MobyGames lists 1116. And the Super NES? 1043. The Nintendo 64 had only 324, the Game Cube 557, and the Wii an astonishing 1201. So all together for the Nintendo consoles, that’s just under 4,250 games…

… iPhone / iPad? Hellatons. From what I can tell, over 100,000 game titles. Not all are unique, mind you, but… that is not a small number. That is a very big number. When you say, “one in a million,” you are only off by a factor of ten when you are talking iPhone games…

… I really don’t know how the brave, new world of gaming is going to work. I hope I can figure it out, as a developer.

Yeah, we’re all with you there.

UPDATES:

The fall of Angry Birds

How Free Apps Can Make More Money Than Paid Apps

Making money in a crowded App Store: it’s dog eat dog and Spy vs Spy

The Sparrow Opportunity

Continue Reading →
2
Page 5 of 91 «...34567...»