Archive for 'Programming'

User Support: Helpdesk, Neemware

You know, for how important everyone agrees that direct user support is for keeping users happy and avoiding one-star reviews, it’s kinda surprising a) how many of us actually implement it on a level somewhere between “an email link that almost nobody finds” and “nothing”; and b) how little there is available in the way of mobile-focused infrastructure for that kind of thing. Only thing we find in our archives is this three year old post which, well, still pretty much covers things as of last week, really.

But in the span of four days we got two, count em’, two, emails from people who want to do something for you about this lamentable lack! In alphabetical order, they are

Helpshift — “The first and only customer support help desk for native apps”

  • Engage users in-app with a native, familiar experience so they don’t stop using the app
  • Cut down on support time with a searchable FAQ that answers common questions
  • Privately resolve user issues to avoid negative app reviews and increase app ranking
  • Integrate a seamless UX built for mobile that you and your users will love

Helpdesk.jpg

Intriguing, yes? They’re in invitation-only preview mode right now, and there doesn’t seem to be any information available on what the eventual cost of the service is planned to be, but we certainly encourage you keen early adopters out there to sign up and let us know how things go!

And in the other corner of this week’s new contenders, we have

Neemware – “In-App Marketing, Messaging, Cross-Promotion & Feedback for Mobile”

As the tag suggests, this one is more a platform for managing user engagement — or, put less diplomatically, a way to push out all the kinds of things that the APNS terms of service don’t allow:

  • Send rich in-app messages in real time
  • Target messages to users based on app usage
  • Send messages without app updates to store
  • Cross promote apps
  • Get in-app feedback
  • In-App reply to user feedback
neemware.jpg

They’re also in try it for free mode right now, and the planned pricing seems pretty reasonable too; so we even-handedly encourage you keen early adopters to check this one out as well and let us know how that works out for you!

And as always, Dear Readers, if you have any feedback on other solutions for the user support/engagement space that have worked out well for you, please share the enjoyment!

Continue Reading →
0

KoboldTouch

Now this is certainly a Herculean endeavour: Messr. Steffen Itterheim of Learn Game Development with Cocos2d renown is launching a subscription-based full-blown fork of cocos2d!

koboldtouch_softwareboxopentop.png

In case you’d missed it so far, cocos2d has had its vision … refined … after the Zynga acqhire:

Vision

Currently cocos2d is: A fast, easy to use, free, and community supported 2D game engine.

And we want to do is go redefine it as: A fast, easy to use, free, multi platform,/ and community supported 2D game framework.

By multi platform, we mean iOS and Android in the mobile space and Web Browsers:

• Write once, run it on the supported platforms. The common language is JavaScript

By framework, we mean:

• An integrated framework for building 2D games:

Game engine: cocos2d

Physics Engine: Chipmunk

World Editor: CocosBuilder

Well, that’s a thing there, isn’t it? Always nice to have a new cross-platform game option joining the plethora already available, but if you’re reading this, chances are you’re of the attitude that you want to craft an awesome iOS game first and foremost and spend time thinking about those other, lesser, platforms sometime between “much later” and “never”, amirite? Well, you’re who KoboldTouch is aimed at then:

… It’s going to be a framework to program iOS & Mac games in, where best practices evolve naturally, where Cocoa programmers feel right at home, where beginners are not left in a void * EXC_BAD_ACCESS … and where Cocos2D is still at the heart of it.

KoboldTouch takes control over Cocos2D, to allows users to implement best practices naturally. Cocos2D provides the view, KoboldTouch provides the controllers, models and the framework to write your code in.

The Goals for KoboldTouch

Take the good parts of Cocos2D, improve Kobold2D and fix what’s been criticized, build KoboldTouch as a Cocoa-esque game framework around Cocos2D views, add Lua scripting and ensure tight integration with Apple’s OS features.

Little by little I want to transform Cocos2D from the rendering engine that it is and embed it into KoboldTouch, the game development framework…

And that’s where the money comes in. KoboldTouch is going to be a $200/year subscription product. How many out there think this sounds like a good enough idea to pay for it? Well, if you’re thinking it might, head to the KoboldTouch product page and check out the video and all the other links there!

Continue Reading →
1

Monetization: MoPub

So this is a monetization platform that you might want to check out seriously for your advertising needs:

MoPub — “Mobile Advertising Done Right”

For mobile publishers, MoPub is the only “one-stop shop” ad server designed to manage all your app monetization needs. MoPub’s three-pronged platform means that you can choose how you monetize through direct sold ads, ad networks, and our real-time bidding system, MoPub Marketplace. Designed for unmatched control over and transparency into how ads are performing on your app, MoPub’s platform makes sure that you’re maximizing your ad revenue potential — without sacrificing your user experience. And, since MoPub was founded by app developers, for app developers, our single, open-source SDK is easy to integrate and our platform scales to serve billions of ads every month…

Seems pretty much like the set of services you get with Burstly that we liked on first try a couple years back, right? Well, we’re a good bit wiser since then in the ways of ad mediation. Not to put too fine a point on it, all ad SDKs suck. If one appears to not suck, wait for the next system upgrade. And they conflict with your code, and you can’t get a patch for crashes in them even when you can prove where the problem is, yadayadayada. We worked for more than we care to remember of last year on a custom Mobclix-based mediation layer bringing in something like a dozen different kinds of custom video/rich media interstitial providers for an app that gave up on attempting to integrate Burstly because of a vast array of issues, but what it really came down to was that it wasn’t open source so we couldn’t do anything about the problems we found. Compare and contrast:

MoPub’s client code is hosted on GitHub in the mopub-client project. As app developers, we got frustrated with the fact that most ad networks required a separate SDK binary integration and constant updates to get the latest features. We came up with the “low footprint,” source level approach as a solution to that problem. Integrate a single set of source files into your app, directly through subversion or git, and then you will never have issues with updates…

A compelling consideration, that. Especially as one thing we learned doing that custom mediation layer mentioned above is that all the big money in advertising these days comes from the small upstarts doing rich media and geolocated ads and so forth, so if you’re serious about making money off your advertising you’re going to be messing around with custom SDKs with low fill rates and having them fall back to the chump change you get from the bigger networks. And that process will be much MUCH easier with an open source mediation layer.

However, it’s the money that most of you will quite sensibly make your final call on, no doubt; any of you Dear Readers have actual deployment experience with MoPub and can tell us how it compares to Burstly or Mobclix or whatever else you tried?

Continue Reading →
1

Roundup: Passbook

So you got a client that’s demanding to support Passbook in the next release, somehow, someway? Yep, us too, so let’s take a look at what resources are available out there, shall we?

As you’d expect, over at Caer Wenderlich there’s some nice introductory tutorials,

Beginning Passbook in iOS 6: Part 1/2 and Part 2/2

which are much abbreviated excerpts of a couple chapters of iOS 6 By Tutorials — which if you haven’t bought yet you should immediately, covering as it does pretty much everything significant new in iOS 6.

But back to Passbook in particular, here’s another good introduction set with sample code (h/t ManiacDev):

iOS 6 Tutorial: Integrating Passbook into Your Applications

iOS 6 Tutorial: Supporting Passbook within Your Enterprise Systems

Another nice one that goes into great detail on how to handle the provisioning portal is found at, of all places, the Xamarin online docs:

Introduction to PassKit

If you don’t feel like creating passes yourself, there’s a wide variety of services springing up to help you out with that:

PassSource – “Your source for free iOS 6 Passbook passes”

PassTools – “The easiest way to build and manage passes for Apple® Passbook®.”

PassKit – “Create, Distribute and Manage Apple® Passbook® Content Across All Major Mobile Platforms”

Passdock – “So cool to create Passbook passes with Passdock!”

PassPages – Hmmm, no allegedly catchy tagline here.

Or there’s some helper implementations showing up on github:

mattt / passbook_rails_example – “This project is an example implementation of this web service specification in Rails, and will serve the basis for a more comprehensive Rails generator in the near future.”

renstrom / passbook_flask_example – “An Example Implementation of a Passbook Webservice on Flask, based on matt’s passbook_rails_example”

tschoffelen / PHP-Pass – “A PHP class for creating a Pass for Passbook in iOS 6.”

SimonWaldherr / passkit.php – “a php function to create passes for Apple Passbook”

skyzyx / passbook – “PHP component and CLI app for creating Apple PassBook files for iOS 6.”

bitzeche / jpasskit – “jPasskit is an Java™ implementation of the Apple™ PassKit Web Service.”

Any other resources you’ve found particularly helpful setting up Passbook integration with your projects, Dear Readers?

UPDATES:

PassSlot “is a free service for developers that aims to make Passbook integration easy – Really easy.”

Getting your business on Apple’s Passbook, DIY style

iOS Passbook Tutorial

Continue Reading →
0

Grabbag: Graphic Tweaks

A salmagundi of tips and techniques for refining your interface elegance today:

kgn / KGNoise (h/t ManiacDev)

I’ve been developing this noise drawing code for quite some time. It all started with drawing noise in the title bar of INAppStoreWindow. The original implementation of the noise drawing for the titlebar used CIFilter, but this took up an unusual amount of memory and also didn’t look so great. So I began my quest for the best noise drawing solution, this project contains the third version which I feel is finally ready for prime time on the Mac and iOS!

KGNoise generates random black and white pixels into a static 128×128 image that is then tiled to fill the space. The random pixels are seeded with a value that has been chosen to look the most random, this also means that the noise will look consistent between app launches…

Perform a blur using vImage from the Accelerate framework Tutorial

I went looking for some sample code on how to set up and use the vImage components of the accelerate framework a few months ago. To my chagrin, there is nothing. Googling just brings you to StackOverflow questions about how to use the framework, with no answers provided. Well, I now provide answers (at least a few)…

Deep-dive into CALayer Shadows

A while back I had done a lot of work with CALayer shadows in iOS. Now I know there is a lot of posts on how to add one. There just is not a lot of information on how to add shadows to your application while keeping the performance hit down to a minimum. Here I will take shadows in Objective-C to the next level by showing you a few optimization techniques…

Image Anti-Aliasing in Objective-C

Recently I had played around with a lot of object transforms in iOS and I noticed that the more you scale and rotate an image, the more it would start to show you jagged edges or pixelate. At first I thought this was an issues with the image itself but it has to do with the way that Objective-C handles image scaling and transforms. I would like to share with you a few tricks that will give you better anti-aliasing and smoother images…

nicklockwood / FXImageView (h/t ManiacDev)

FXImageView is a class designed to simplify the application of common visual effects such as reflections and drop-shadows to images. FXImageView includes sophisticated queuing and caching logic to maximise performance when rendering these effects in real time.

As a bonus, FXImageView includes a standalone UIImage category for cropping, scaling and applying effects directly to an image…

khanlou / SKBounceAnimation (h/t @romainbriche)

SKBounceAnimation is a CAKeyframeAnimation subclass that creates an animation for you based on start and end values and a number of bounces. It’s based on the math and technology in this blogpost which in turn was based partially on Matt Gallagher’s work here

khanlou / SKInnerShadowLayer

SKInnerShadowLayer takes the graphical properties of a CAGradientLayer that let you set the shadow, gradient, and border of a layer, and adds four properities that let you control the look of an inner shadow for the layer…

Something there to polish up anybody’s UI a bit; and just as we finish up here, congratulations to Felix Baumgartner on landing safely! You were all watching, weren’t you? If not, here’s your obligatory One @#(*$^!! Of A First Step™ shot:

_63460154_baumgartnerapredbullstratos.jpg

UPDATES:

Open Source iOS Library For Creating Modal Views That Automatically Blurs The Background

Fingertips / FTAssetRenderer – Create image assets at runtime in any color when used as mask and/or at any resolution when it’s a PDF

iOS Library For Automatically Generating A Color Scheme From An Image Like iTunes 11

MLPSpotlight – “…display a spotlight effect over a specific point on the screen in a convenient manner.”

Getting Creative with CALayer Masks

Blur Effect in iOS Applications

Ciechan / BCGenieEffect: “An OSX style genie effect inside your iOS app.”

Open Source iOS Control Providing Keylines That Adjust Based On Device Tilt Like The Music App

Easy CGGradients

hfossli / AGGeometryKit: “Create CATransform3D with quadrilaterals, useful math functions, calculate angle between views ++”

iOS Image Processing Library Allowing You To Define Custom Image Filters Using A JSON File

A potential pitfall of CGRectIntegral

Designing for iOS: Blending modes

Continue Reading →
0

Remote View Controllers

This is an interesting read on how the guts of iOS 6 have changed to use XPC for system-provided controllers:

Remote View Controllers in iOS 6

In my previous article on sharing in iOS 6, I hinted at the possibility that Apple was working on a more powerful method to enable sharing between apps without compromising the iOS security architecture.

In fact, Apple is already using a new undocumented concept called Remote View Controllers in iOS 6. This post is an attempt at investigating what is going on under the hood in iOS 6 and what this may mean for future versions of iOS…

Also, a couple interesting tools from the footnotes:

nst / iOS-Runtime-Headers: iOS 6 headers generated using Runtime Browser for iPhone.

Pimping recursiveDescription to include controllers as well as views.

h/t: @osxdevel!

UPDATES:

More on Remote View Controllers

Continue Reading →
1

Remote Configuration: Ground Control

Here’s a nice start on remote configurability you might look at for adding into your apps:

mattt / GroundControl

Break free of the two-week tyranny of the App Store approval process!

Many developers don’t realize that they are allowed to remotely control the behavior of their app (provided that the application isn’t downloading any new code).

GroundControl gives you a dead-simple way to remotely configure your app, allowing you to add things like feature flags, impromptu A/B tests, or a simple “message of the day”

We’ve got pretty much exactly the same thing as a feature at the day job, and why yes it’s pretty darn handy to be able to patch, extend, or completely replace the functionality and display of a particular app on the fly. Where by “pretty darn handy” we mean “if you buy us a martini or seven and swear to keep silent, boy do we ever have some stories for YOU…” But any-ways, point is here, if there is anything that you can foresee might need changing on your app that doesn’t require new code, it would be very forward-looking of you to consider integrating something along the lines of this piece!

h/t: ManiacDev!

Continue Reading →
0

AGImageChecker

Now this looks like a downright lifesaver for all those of you who oversee a framework that powers a dozen team apps and counting with several hundred individual skinned and themed images going into each …

… oh, wait, that’s just us, is it? Well, no matter how many images you need to check, this’ll help:

angelolloqui / AGImageChecker

AGImageChecker is a lightweight iOS library that helps developers to find problems in their used images. It detects when images are smaller or different sized than their container views, producing resized or blurry images. Wrong images will have a colorfull border that helps you to detect them. Additionally, it adds a long press gesture to open an image detail and check useful information about the problem, such as the image size, the view size, the contentMode, the presence of retina version, the associated view controlller,… All of it out of the box, without changing your code (device and simulator)…

Screen Shot 2012-09-29 at 5.55.41 PM.png

That’s some handy diagnostics, indeed.

Speaking of images, if you need some handy placeholders during development, nowhere better to go than {placekitten}

…because everyone’s day is happier with kittens in it!

h/t: @cocoapods!

Continue Reading →
0

Extended Objective-C

Here’s a library of language extensions worth looking into:

jspahrsummers / libextobjc : “A Cocoa library to extend the Objective-C programming language.”

The Extended Objective-C library extends the dynamism of the Objective-C programming language to support additional patterns present in other dynamic programming languages (including those that are not necessarily object-oriented) … libextobjc currently includes the following features:

  • Safe categories, using EXTSafeCategory, for adding methods to a class without overwriting anything already there (identifying conflicts for you).
  • Concrete protocols, using EXTConcreteProtocol, for providing default implementations of the methods in a protocol.
  • Simpler and safer key paths, using EXTKeyPathCoding, which automatically checks key paths at compile-time.
  • Compile-time checking of selectors to ensure that an object declares a given selector, using EXTSelectorChecking.
  • Easier use of weak variables in blocks, using @weakify, @unsafeify, and @strongify from the EXTScope module.
  • Safer private methods, using EXTPrivateMethod, for declaring methods on a class, and getting notified if they conflict with other existing methods.
  • Scope-based resource cleanup, using @onExit in the EXTScope module, for automatically cleaning up manually-allocated memory, file handles, locks, etc., at the end of a scope.
  • EXTNil, which is like NSNull, but behaves much more closely to actual nil (i.e., doesn’t crash when sent unrecognized messages).
  • Synthesized properties for categories, using EXTSynthesize.
  • Algebraic data types generated completely at compile-time, defined using EXTADT.

Some pretty cool stuff there, yeppers. @onExit in particular looks like it remedies the only thing we occasionally miss about C++, stack-declared resource management wrapper classes. Even if you’re not chomping at the bit for any of this stuff though, digging around the implementation mechanics is extremely educational. Lots of material for Truly Evil™ interview questions here, indeed.

h/t: @JSpahrSummers!

Continue Reading →
0

Fingertips: Presentation Mode

This is a slick little helper for if you’re writing software designed to run presentations, or if you want to record some screen tutorials:

developmentseed / fingertips

Fingertips: Presentation mode for your iOS app

Fingertips is a small library (currently, one class) that gives you automatic presentation mode in your iOS app. Note that currently, this is only designed for the iPad 2 and iPhone 4S (or later), which feature hardware video mirroring support. This library does not do the mirroring for you!

Just drop in our replacement UIWindow subclass and your app will automatically determine when an external screen is available. It will show every touch on-screen with a nice partially-transparent graphic that automatically fades out when the touch ends.

Here’s a demo video

Handy if you need it!

h/t: @romainbriche!

Continue Reading →
0
Page 3 of 88 12345...»