Posts Tagged 'iPhone'

Airship Pushing Us Overboard

So it’s been a seriously long time since we looked at APNS providing options, as it’s been the universal default for everyone we’ve worked with since to default to Urban Airship. And, generally, to be perfectly satisfied with their free level of service. Turns out they’ve had enough of us freeloaders:

We’ve discovered that we work best when we’re working closely with our customers to help them solve their problems and implement a mobile-first experience for their users with our complete solution. [Ed. - why, what a polite way to say “getting paid”!] Today, we’re taking some concrete steps toward crystallizing that focus by sunsetting our free Developer Edition product that offers a subset of the capabilities of our complete solution.

If you are using the Developer Edition offering, everything will remain the same for the next six-months until its retirement on December 31, 2014. Between now and then, Developer Edition users can either choose to establish a paid relationship with Urban Airship for access to our push-only product or our full solution suite, or migrate to an alternate solution…

Well, these days when less than half opt in to pushes at all, it’s pretty hard to make a case for that for most of our Airship usage. So let’s see what options there are in the “migrate to an alternate solution” space for the freeloading indie, shall we?

In the messaging-focused provider category:

Appoxeestarts at $500/month

Boxcar — 200 pushes per minute to 100 devices for free; goes up by ppm

Element Wave — unlimited to 5K users for free; trial-only for more

Moblico — trial accounts only

Push IO — trial accounts only

PushApps — 1M pushes to 100K devices from 5 apps for free; notably cheap unlimited plans

PushWizard — 30 messages to one app on unlimited devices for free; smorgasbord of paid additions

PushWoosh — unlimited pushes to 1M devices from 5 apps for free; tiered paid feature sets

TheAppSales — “a good size number” for free

XtremePush — unlimited pushes to 1M devices from 5 apps for free; tiered paid feature sets

In the cloud service space that provide messaging on the side:

Amazon SNS — 1M pushes for free; then $1/1M pushes

App42 — 1M pushes for free; tiered price plans

Asking Point — 3M pushes for free; pay via commission

Kinvey — 5M pushes for free; tiered price plans

mobDB — 600K pushes for free; then $15/1M pushes

Parse — 1M pushes for free; then 5¢/1K pushes

If there isn’t something there that suits your feature vs. price requirements adequately, there’s always rolling your own: By far the most popular on github, which we’ll take as sufficient proof of adequacy and not bother looking further, is

Redth/PushSharp: “A server-side library for sending Push Notifications to iOS (iPhone/iPad APNS), OSX (APNS 10.8+) Android (C2DM and GCM – Google Cloud Message), Chrome (GCM) Windows Phone, Windows 8, Blackberry (PAP), and Amazon (ADM) devices!”

but if you want more choice, hey there’s 412 following it thrown up for APNS on Github, go wild.

One last special mention of noodlewerk/NWPusher that lets you do your development with a local OS X application, which certainly would have expedited many of our past projects.

Think we managed to catch all the services currently worthy of short list consideration here; if we missed stumbling over your favourite, of If you have any positive or negative experiences with any of these to share, please do!

Continue Reading →
4

Core Data And Swift

Been quite a while since the last time we rounded up Core Data goodies, since when we’ve gone through The iCloud Angst Apocalypse and ended up with that class of problem being relegated to the new CloudKit hotness … if you don’t need, like, cross-platform access or anything. Which most people want. As, indeed, we’re going to be designing the iOS side of a project in that cross-platform space next week; so let’s take a look at what’s going on now in the new Swifty iOS 8 world, shall we?

First off, here’s an decently comprehensive curation of important tools as the Swift world dawns — keep an eye on all of these to see how they adapt to new world Swiftiness:

Top 10 Core Data Tools and Libraries :

Marcus Zarra gives us The Core Data Stack In Swift which inspired Core Data Stack in Swift Simplified

kylef/QueryKit is a nifty Core Data query language in Swift; also check out kylef/KFData for some convenient Objective-C conveniences

Another interesting initiative (h/t ManiacDev) is Alecrim/AlecrimCoreData: “a Core Data wrapper library written in Swift, “inspired” by MagicalRecord and LINQ.”

Read Swift Core Data Format String Injection — or end up as an xkcd cartoon

Like videos? There’s a bunch here. This series looks particularly worthwhile, comes with code and is updated through the current Xcode 6b5:

UPDATES:

Core Data Batch Updates in iOS 8 And Swift

SugarRecord / SugarRecord: “…you’ll be able to start the CoreData stack structure just with a line of code and start working with your database models using closures thanks to the fact that SugarRecord is completly written in Swift.”

mogenerator 1.28 has “experimental” Swift code generation

New in Core Data and iOS 8: Batch Updating with Core Data Demo: Batch Updating and Asynchronous Fetching

Swift: Distributing Core Data Entities Over a Network

iOS 8: Core Data and Asynchronous Fetching

Your First Core Data App Using Swift

michaelarmstrong / SuperRecord: “A small set of utilities to make working with CoreData and Swift a bit easier.”

Protocols in Swift with Core Data

tadija / AERecord: ”Why do we need yet another one Core Data wrapper? You tell me!”

Core Data versioning is not temporal … My general recommendation is to avoid heavy migrations at all costs. They are not designed to work on iOS and frequently cause issues.”

Core Data Relationships Data Loss Bug when calling migratePersistentStore

WatchKit [and all others] Extension Problem: Sharing a Core Data Store Can Lead to Duplicate Entries

Continue Reading →
1

Review: Learning iPhone Game Development with Cocos2D 3.0

Quite the twisted trail it’s been since we first noticed cocos2d-iphone way back in 2008 and watched it grow, split, recombine, be acquhired, and eventually have the founder jump ship for the C++ version cocos2d-x. It was looking bleak there for us peoples tasteful enough to revile the thought of sullying ourselves with other, lesser, platforms for a while there until Apportable stepped up to support what’s been a surprisingly frantic divergence from the cross-platform strains, not least the currently misnomed rechristening as “Cocos2D-Swift”.

And today, we’re going to take a look at the first and only so far book out there on learning modern Cocos2D-Swift,

Learning iPhone Game Development with Cocos2D 3.0

0144OS_Cocos2D 3.0.jpg.png

The book follows the style of introducing concepts over the course of developing a single game called ‘CocoHunt’ which can be downloaded from the App Store and has its source available on Github. It assumes basic familiarity with Xcode and Objective-C, focusing solely on Cocos2D coding. And, unfortunately, that means no discussion of SpriteBuilder, which our first reaction is a significant flaw in an introductory book to modern Cocos2D. But let’s take a walkthrough of the book, as described by itself in the Preface:

Chapter 1, All About Cocos2D, provides basic information about game engines, additional information about Cocos2D, as well as examples of great games created with Cocos2D.

In which our above concern is addressed:

However, using SpriteBuilder doesn’t eliminate the need to write the code and understand how Cocos2D works. This is why, I strongly believe that first you need to learn pure Cocos2D and after that it will be very easy to start using SpriteBuilder and make your life even easier.

Well, that’s a valid perspective. Ours is to put off learning anything that there’s easier ways to accomplish, since after 20+ years in this industry we figure that knowledge becomes obsolete so fast that investing more than the minimum you can get away with is generally a misallocation of resources.

Chapter 2, Hello Cocos2D, guides you through the installation process and reviews the contents of the Cocos2D distribution package and demo projects that come with it.

And runs you through a hello world project with a sprite and label. Straightforwardly done.

Chapter 3, Cocos2D – Under the Hood, describes the architecture of the framework and its main classes. In the second part of this chapter, we will review several Cocos2D configuration options.

This would have been a good chapter to use as an introduction to SpriteBuilder, relating the architecture to SpriteBuilder’s layout. As it is, it’s a bit awkwardly placed to break rhythm. As the author acknowledges:

I know that you want to start writing the code and creating games as soon as possible. If you just can’t fight this feeling, then skip to Chapter 4…

That we’d say is a solid clue that our suggestion is a good one. (OK, we swear we’ll stop harping on SpriteBuilder now. Really.)

Chapter 4, Rendering Sprites, begins to unveil the process of game creation. In this chapter, we will add a game scene, background image, player, and enemy characters. We will review some of the main properties of Cocos2D nodes and will make them move, rotate, flip, and so on.

Remarkably well done chapter! As well as all the display basics you’ll need, smoothly works in anchor points, character composition, and use of TexturePacker even.

Chapter 5, Starting the Action, covers the process of controlling the game using states, handling touches, or using a gyroscope to get player input. At the end of this chapter, we will have a skeleton of a playable game.

Another excellent chapter, thoroughly covers interactivity as described and works in some good coordinate spaces and vector math discussion too.

Chapter 6, Rendering Text, shows you how to display score, lives, earned points, and winning and losing labels. In this chapter, we will use both True Type and Bitmap font-based labels of Cocos2D and will discuss benefits and performance considerations.

Straightforward and competent; covers Glyph Designer too.

Chapter 7, Animations and Particle Systems, demonstrates the use of different animation types and shows how to use particle systems to get really cool effects such as explosion and fire.

Competent enough for a beginner book, although we would’ve liked a little more on skeletal animation; covers Particle Designer too.

Chapter 8, Adding Sound Effects and Music, shows how to easily add sound effects and music, switch between music tracks, and adjust audio properties.

Again straightforward and competent, nice that it mentioned sourcing and attributing from Freesound, Nature Sounds For Me, and NoSoapRadio. Cool stuff, check them out!

Chapter 9, User Interface and Navigation, concentrates on creating a convenient user interface using Cocos2D controls such as buttons, the scroll view, table view, and so on. In this chapter, we will see how to create scenes that exist in most games, such as the menu scene, about scene, and so on, and how to navigate between them.

That sound like a lot to cover? Yes it is, and the “and so on” covers a good many asides. There’s a bit too much crammed in here we think, probably would have been a bit easier to follow if focused into UI and navigation chapters; but it’s certainly very good as is.

Chapter 10, Physics, shows how to use the physics engine in your game. In this chapter, we will create a playable level using the physics engine; we will review how to create physics objects, adjust their properties, detect and filter collisions, use joints, and so on.

Yet another exceptionally well done chapter. Can’t think of an introduction to using physics engines we’ve ever read that was better than this, actually; balances features and explanation just about perfectly to get you started.

Chapter 11, Working with Tile Maps, explains tile maps and shows the complete process of creating and using a tile map in the game.

Including parallax animation as well, which is a nice feature to have explained in a learning book.

Chapter 12, Standing Out – Integrating Game Center and In-App Purchases, covers integrating Game Center and adding In-App purchases to the game.

For some reason, you have to download this chapter separately and the Preface link doesn’t work. But once you get past that gratuitous annoyance, again a straightforward and competent explanation of the described tasks. And bonus points for a nice collection of various asset-finding links for the penniless indie to finish off the book with!

So overall, we’re pretty darn impressed here, quality ranges from nicely done to downright outstanding all the way through the book; the best introductory Cocos2D book written yet, we’d say. Our only serious problem with it is that there isn’t any introduction to SpriteBuilder. And there’s a book devoted to that in progress by Steffen Itterheim, so if you’re more of a visual tool type person you might want to wait for that one. But if you want to get started NOW!, or you’re not a visual type person, then hey this is your best and most current choice for learning Cocos2D-Swift!

Continue Reading →
1

iOS 8 Grab Bag

So, pretty much got your head around Swift now and ready to move on to all the other new goodies in iOS 8? Here’s a series that’s been chugging along since WWDC well worth your time to read:

Over in the Wenderlich tutorial empire, we see no reason to expect that this will be less awesome than the last three of which we bought all, so we’ll confidently recommend that you go ahead and preorder

iOS 8 by Tutorials: Learning the new iOS 8 APIs with Swift or hey, go whole hog with Swift by Tutorials Bundle

In the meantime, there’s lots of Swift tutorials, and this introduction to Metal

iOS 8 Metal Tutorial with Swift: Getting Started

If you deal with passwords anywhere in your app, if you’ve missed it so far (h/t: ManiacDev) head over now to

AgileBits/onepassword-app-extension

Welcome! With just a few lines of code, your app can add 1Password support, enabling your users to:

  • Access their 1Password Logins to automatically fill your login page.
  • Use the Strong Password Generator to create unique passwords during registration, and save the new Login within 1Password.
  • Quickly fill 1Password Logins directly into web views.

And even if you don’t have password management, take the time to read their very nice explanation of extension security at

Filling with your approval: On 1Password’s App Extension and iOS 8 security

Here’s a nice little button class (h/t iOS Dev Weekly) to get you started with the funky effect stuff:

AYVibrantButton is a stylish button with iOS 8 vibrancy effect. It is a subclass of UIButton that has a simple yet elegant appearance and built-in support for UIVisualEffectView and UIVibrancyEffect classes introduced in iOS 8. Yet, it can be used on iOS 7 without the vibrancy effect…

Here’s an iOS 8 savvy HUD class whose necessity is explained for those who might question it as

There already are so many other open source progress HUD components!

While other progress HUD components are nice they all have their problems. MBProgressHUD is outdated and buggy, MMProgressHUD is totally over engineered and requires a long time to implement, SVProgressHUD and HTProgressHUD are not implemented in the right way and they all don’t offer the extensibility of JGProgressHUD. JGProgressHUD was inspired by all of these components to create the ideal progress indicator.

We adore people not overburdened with modesty.

UPDATES:

Self Sizing Table View Cells; Understanding Self Sizing Cells and Dynamic Type in iOS 8

A Step-By-Step Tutorial On Using iOS 8′s New Keyboard Extension; The Trials and Tribulations of Writing a 3rd Party iOS Keyboard

UIAlertController Changes in iOS 8

iOS 8 Privacy Updates

iOS8 Sampler for iOS

Working with Touch ID API in iOS 8 SDK

iOS 8 Metal Tutorial with Swift: Getting Started; Metal By Example; objc.io’s Metal

Image Resizing Techniques and PHImage​Manager

Introducing the iOS 8 Feast!

Apps Using iOS 8 Extensions

What we learned building the Tumblr iOS share extension

EL Mustache – iOS 8 Photo Extension in Swift

iOS 8 Handoff Tutorial; Working with Handoff in iOS 8

Tutorial: Creating Interactive Notifications With iOS 8’s Notification Actions

Introduction to iOS 8 App Extension: Creating a Today Widget

Share Extension Iterations

Continue Reading →
0

Project Diagnostics: Faux Pas

Hey, we can all use some more help finding problems in our projects, right? Check out this most promising new tool Faux Pas:

What the Clang Static Analyzer is to your code, Faux Pas is to your whole Xcode project.

Faux Pas inspects all of these things together:

  • Code
  • Project configuration (e.g. build settings)
  • Interface Builder files
  • Static assets (e.g. images)
  • Version control

This means it can warn you about errors that span the boundaries between these different parts of the project. For example:

  • Code tries to load a resource file that doesn’t exist
  • Code uses a localization key that is missing for some languages
  • Project references a file that is outside of the version control root
  • Project is missing an API usage description (e.g. NSContactsUsageDescription) while using that API in the code

So we figured we’d give it a shot at our current project. In which our code compiles clean with -Weverything, because we play Xcode on hard level, so it ought to be good right? Well, not by 5825 problems, doh!

Screen Shot 2014-08-03 at 7.03.41 AM.png

There is a lot of stuff this thing checks that’s impossible to check efficiently any other way. We’d go into more detail … but why bother? It’s an demonstratedly invaluable tool, download it now!

h/t: iOS Dev Weekly!

Continue Reading →
0

Unsustainable Apps: Revolver

The good news is, there’s a pretty cool open sourced app for you to check out (h/t iOS Dev Weekly):

Ciechan/Revolved: a 3D modelling app for the iPad

  • OpenGL ES 2.0 based rendering integrated with UIKit
  • custom animation engine
  • a bit of private API hackery

The line drawing system has been explained in detail on my blog

The bad news?

Screen Shot 2014-07-27 at 12.18.55 PM.png

Ouch! Damn, that’s just painful. Although sadly usual, these days:

The Majority Of Today’s App Businesses Are Not Sustainable

Accounting for 47% of app developers, the “have nothings” include the 24% of app developers – who are interested in making money, it should be noted – who make nothing at all.

Meanwhile, 23% make something, but it’s under $100 per month … those who prioritize iOS app development are less likely to find themselves in this group, with 35% earning $0-$100 per month, versus the 49% of Android developers…

Meanwhile, 22% are “poverty stricken” developers whose apps make $100 to $1,000 per app per month…

A Candid Look at Unread’s First Year

Unread for iPhone has earned a total of $32K in App Store sales. Unread for iPad has earned $10K. After subtracting 40 percent in self-employment taxes and $350/month for health care premiums (times 12 months), the actual take-home pay from the combined sales of both apps is:

$21,000, or $1,750/month

Considering the enormous amount of effort I have put into these apps over the past year, that’s a depressing figure. I try not to think about the salary I could earn if I worked for another company, with my skills and qualifications. It’s also a solid piece of evidence that shows that paid-up-front app sales are not a sustainable way to make money on the App Store…

I suppose this is a sign of maturity, the app market is starting to resemble other creative markets like books, art, and music as the returns to individual creators shake out. Depressing, isn’t it? But chin up and move on, just means we have to get better at marketing. And here is an excellent article on how to go about that:

How Hours became a top grossing app

… when I asked on Twitter what people want to know about, the overwhelming response was: how on earth did you market the app? Some seem to believe I have this magical ability to get featured by Apple, TechCrunch, etc. etc. etc. I don’t. It takes time and a lot of hard work and I started out just like anybody else so this stuff is completely do-able. I don’t have all the answers but I’ll tell you what I did…

TL; DR: Make a lot of friends. And it’s hard work. But read the whole thing!

UPDATES:

Increasing In-App Revenue with Metric Driven Design and Emotional Targeting

Continue Reading →
1

Xcode 6: Usable Testing

If you’d overlooked the improvements to testing in Xcode 6, understandably enough what with the new language and all, they’re definitely worth taking a look at:

XCTest​Case / XCTest​Expectation / measure​Block()

New in Xcode 6 is the ability to benchmark the performance of code

Perhaps the most exciting feature added in Xcode 6 is built-in support for asynchronous testing…

Xcode 6 seems to have fulfilled all of the needs of a modern test-driven developer. Well, perhaps save for one: mocking … However, this may not actually be necessary in Swift, due to its less-constrained syntax.

In Swift, classes can be declared within the definition of a function, allowing for mock objects to be extremely self-contained. Just declare a mock inner-class, override and necessary methods:

With Xcode 6, we’ve finally arrived: the built-in testing tools are now good enough to use on their own.

Which means we can hopefully look forward to Xcode 6 hosted CI services that can run a decent test suite easily. No more messing with Jenkins or whatever, w00t! Here’s a list of the various CI services we’ve noted here and there compatible with iOS/OS X projects so far:

Travis CI is free for open source, paid for private

Hosted CI is an iOS and OS X focused service, with free open source and cheap indie plans

Ship.io used to be called cisimple, and whilst being rebranded it’s totally free

Greenhouse CI is fresh out of beta: they support Android as well, and have a free 2-app plan

While we wait to see which of these support Xcode 6 first, Dear Readers, any experience positive or negative with them to share? Or any other iOS-supporting CI services you’d recommend everyone consider/avoid?

UPDATES:

iOS8 Day-by-Day :: Day 6 :: Profiling Unit Tests

iOS8 Day-by-Day :: Day 11 :: Asynchronous Testing

objc.io #15: Testing

Swift: Unit Testing Tips and Tricks

Cloudbees has virtualized OS X environments for continuous integration with Jenkins.

Greenhouse apparently wins the Xcode 6 support prize: September 8th – “If you want to give it a ride then drop us an email at team@greenhouseci.com and we’ll enable it for your account. We will enable it for all users automatically in the future when it gets a bit more stable so stay tuned.”

Asynchronous Testing With Xcode 6

Xcode 6.0.1 Asynchronous Tests

Continuous Integration With Xcode Server

Tutorial: An Introduction To The New View Debugging Features In Xcode 6

Continue Reading →
0

Airline Booking: Aviasales SDK

You know, iOS Dev Weekly gets the best ads. We’d overlooked this one until now:

Flight search engine in your app

Help your users find the cheapest flight tickets right in your app and earn $7 per booking. Use a ready template or build your flight search from scratch with Aviasales iOS SDK framework.

Well, that sounds interesting, doesn’t it? Pretty simple:

1) Sign up as a travelpayouts.com affiliate. And it really is just sign up, no approval process.

2) Grab KosyanMedia/Aviasales-iOS-SDK off GitHub

3) Take a look at all the other affiliate tools they’ve got on offer

4) ???

5) PROFIT!

h/t: iOS Dev Weekly!

Continue Reading →
0

Print On Demand: Kite SDK

Feel like adding print on demand to your app? Check this out:

OceanLabs / iOS-Print-SDK

The Kite Print SDK makes it easy to add print on demand functionality to your app.

Harness our worldwide print and distribution network. We’ll take care of all the tricky printing and postage stuff for you!

To get started, you will need to have a free Kite developer account. Go to kite.ly to sign up for free.

Products

Use print to unlock hidden revenue streams and add value for your users. In under an hour you could be using our SDK to print:

  • Magnets
  • Polaroid Style Prints
  • Square Prints
  • Postcards
  • A4 (invoices, letters, etc)
  • New products being added monthly

We mentioned another print on demand service the Sincerely Ship Library a long time ago, and they still seem to be around as well, but if you want more than postcards this one looks well worth looking into!

Continue Reading →
0

Video Killed The Screenshot Star

So it’s not enough that designing the increasingly misnamed “screenshots” for your App Store listing is a full-fledged production process these days, now you need to ramp up your video production skills as well:

App Previews

App Previews are short videos showcasing what’s great about your app to help users decide if it’s right for them. Customers can watch App Previews directly from your app details page in the App Store. App Previews are composed primarily of device-captured footage of your app to help customers make more informed download decisions.

How Do I Create an App Preview?

With iOS 8 and OS X Yosemite, you can capture real-time footage of your app directly off your iPhone, iPad, or iPod touch. Just connect your device to your Mac using the Lightning connector and it will be automatically available as a video camera. You can capture anything you’re doing on-screen directly to your Mac using QuickTime Player. Edit your captured footage in your favorite video editing app and upload it on iTunes Connect—just like your screenshots—to submit it for review along with your next app update…

Availability

App Previews appear on your app details page in the App Store on iOS 8 or later. App developers can submit their App Previews this Fall.

So, time to get on that then, right after watching the “Creating Great App Previews” WWDC session. If there is such a thing as “your favourite video editing app,” that is. Those of us who would be hard pressed to even name any video editing app, never mind have a favourite one, well we do have a bit more of a challenge here, don’t we now.

No doubt in short order there will be a great deal of options to help us with that; but at the moment the only established option we’re aware of enough to have linked to before is Apptamin, who have here an excellent post here to get you up to speed,

App Previews (video on the iOS 8 App Store): Thoughts and Tips

Video on the App Store. It’s (almost) here. It’s awesome for App Developers. One can’t help but wonder why it’s only coming now when the Google Play Store and the Amazon App Store have added it a long time ago. But it doesn’t really matter. After producing close to 300 promo videos and game trailers since we started Apptamin, we do have some thoughts about the App Previews that were introduced. And a few tips as well…

Read the whole thing, as they say. And then these:

How to Produce an App Promo Video

10 Examples of Great App Promo Videos

The Ultimate Guide To Using Video For App Marketing

Let’s Make a Promo

Getting Started with App Previews

Everything You Need To Know About iOS 8 App Previews

UPDATES:

Ideon / SmudgeKit: “provides a drop in replacement for UIWindow to draw visual representations of all touch events to the screen. Ideal for for creating App Previews or other screencasts where it is crucial to show touch gestures.”

Continue Reading →
1
Page 3 of 99 12345...»