Archive for 'iPhone'

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

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

Image Resizing Techniques and PHImage​Manager

Introducing the iOS 8 Feast!

Apps Using iOS 8 Extensions

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!

Continue Reading →
0

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.”

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

Continue Reading →
0

CloudKit On The Horizon

So we’ve previously observed with some amusement the insurmountable opportunities associated with Core Data iCloud synchronization, and noted some valiant efforts to redress the situation that unfortunately seem to have not set the world on fire; and, well, it seems that Apple’s pretty much given up on that. You may have noticed that the “What’s New in Core Data” WWDC 2014 was a little … thin, yes? Like the iCloud news segment was one slide,

  • Transitioning to new infrastructure
  • Reliability improvements
  • Performance enhancements
  • Transparent to developers

Hmmm. When the year’s news can be comprehensively enumerated as “sucks less”, that’s not the best investment signal, is it now.

But wait! We have a new hotness in the data sync world, or at least the Apple fiefdoms therein, as posted at iCloud For Developers:

CloudKit

Leverage the full power of iCloud and build apps with the new CloudKit framework. Now you can easily and securely store and efficiently retrieve your app data like structured data in a database or assets right from iCloud. CloudKit also enables your users to anonymously sign in to your apps with their iCloud Apple IDs without sharing their personal information.

With CloudKit, you can focus on your client-side app development and let iCloud eliminate the need to write server-side application logic. CloudKit provides you with Authentication, private and public database, structured and asset storage services — all for free with very high limits.

Introducing CloudKit

Advanced CloudKit

What’s New in Core Data

iCloud Design Guide (Pre-release)

CloudKit Framework Reference (Pre-release)

And although they list ‘What’s New in Core Data’ there, we’d like to bestow our 2014 WWDC Unintentional Deadpan Humour Award to Melissa Turner for her commentary on that session’s single CloudKit slide:

… I don’t know what either of those means. You should probably go watch the video of their session. Somebody gave me these slides. And asked me please to talk to you guys about it.

Why, she reminds us of our own style of following orders under protest! And just in case you missed that subtle hint, the only related session mentioned at the end was “Introducing CloudKit”. So, y’know, it’s not like the signposts here are anything other than completely obvious.

The general industry reaction is represented nicely here,

What does Apple’s CloudKit mean for mBaaS

Architecting an application around CloudKit locks your data into the Apple ecosystem. This means no access to this data for your Android application that half your users use. No access for your web application, no access for your web app, and no access to the data for your analytics engine to crunch the numbers.

Apple has yet to release any details of a REST API or export mechanism for this data. While the appeal when writing a simple application might be to use the out-of-the-box cloud APIs made available by Apple, in the longer term will prove very limiting. When extending this application to other platforms mobile or otherwise, there’s no way to utilise the same database elsewhere.

Apple of course has an agenda here – they’re trying to encourage developers, and thus in turn users, into their closed ecosystem – and a fantastic ecosystem it is. Unfortunately, that’s not the reality of the market. Users access applications across disparate platforms, made by disparate vendors. That should make CloudKit a non-runner for most applications.

Sounds about right. But for those with more modest initial goals, it’s pretty cool yes? Some commentaries worth reading:

Notes on CloudKit

But I still bet that lots of apps will benefit from this. Somewhere people are thinking about their existing apps and how they’d benefit — and people are planning new apps that they wouldn’t have otherwise been willing to try.

I think this is going to be a huge deal. I think it’s the first time Apple has really nailed a web service for developers. And I tip my hat to the team (or teams) behind all this. Good job, folks.

Did CloudKit Sherlock Ensembles?

First, let me say, I think CloudKit is awesome. It probably should have been iCloud 1.0 three years ago. Apple have done a great job, and I fully expect this to succeed. It’s particularly useful for apps that not only need cloud storage, but also have social aspects.

CloudKit is basically Apple’s take on schema-less cloud storage. Think Parse.com or Azure Mobile Services, and you’ve pretty well grasp CloudKit. You can store data records in the cloud — not just files — and don’t have to write any networking code. You can insert records, form relationships, and perform search queries, much like a cloud variant of Core Data (though not as powerful).

As good as it seems to be, there are limitations. CloudKit is not cross platform, so you can forget Android, and there is no web access to the data. But there should be plenty of smaller companies happy just to ‘win’ the Apple market, so I think it will get adopted.

Certainly makes sense to us to ship an economical iOS-only minimum viable product and rearchitect for cross-platform once it’s clear the investment is merited, so even in the current state CloudKit looks like a pretty big win. And we think it’s a fairly good bet that API and/or export mechanisms are on the roadmap too; it’s rather stretching credulity to think Apple believes they can wall their garden quite that high and still expect developers to enthusiastically embrace the technology. Check back after WWDC 2015, and we’ll see how well placed that confidence turned out to be!

UPDATES:

CloudKit: The raywenderlich.com Podcast Episode 9

Choosing CloudKit brings up the point of data security, at least the user perception of such, that might be not insignificant depending on your intended app:

They will not need to setup another account with yet another set of credentials to manage. More importantly, their data will be stored with Apple, a vendor they have already choosen to trust. It will be stored in siloed, private data stores that not even the developer can access. That cannot be said for apps using Azure, Parse or other backend services.

Web Services, Dependencies, and CloudKit

CloudKit: The fastest route to implementing the auto-synchronizing app you’ve been working on?

Continue Reading →
0

PaintCode 2.1 with SWIFT!

So we’ve mentioned in passing the existence of PaintCode the premier code-producing vector drawing program out there, but we’d never got into it particularly deeply; but with the serious upgrades with version 2,

Our goals for PaintCode 2

  1. Super simple integration of the generated code into your projects. (with StyleKits)
  2. Ability to easily create parametric drawings. (with Variables & Expressions)
  3. Much better drawing tools.

we finally decided, ok this is seriously worth getting into to see just how much it’ll help with this Apportable-fuelled Android port we’re working on right now. And the wonderful PaintCode folk are fantastically supportive — we’ll have a complete report, um, just as soon as we actually get anything done worth reporting, gulp — but in the meantime we’d like to make sure none of you Dear Readers miss how fast out of the gate they were with version 2.1 feat. SWiFT!

After Apple introduced Swift at WWDC, it became clear that this is the future of Apple software development. We started to work on Swift code generation for PaintCode immediately.

Today, we’re very excited to finally make PaintCode 2.1 available. Here is a video of PaintCode 2.1 running the Swift code generator.

Our experience with Swift has been very positive so far – congratulations to Chris Lattner and his entire development team for this great work!

… To learn more about PaintCode 2, visit our website. We have prepared video tutorials that show PaintCode 2 in action. To catch all PaintCode-related news, follow us on Twitter and Facebook.

So while you’re patiently waiting for whenever we might get around to actually using it and reporting on how it and Apportable play together, we very strongly indeed encourage you to check it out for yourself!

Continue Reading →
0

Swift Reactions

So yeah, that yesterday. That was a thing, wasn’t it? Most of the plethora of announcements we found more along the lines of good show and thank you yes that’ll certainly help shut up the fandroids, but kinda obvious that was a good idea and not any too soon either; but on the scale of 1 to Did Not See That Coming, at “Asteroid Impact” level with this one, pretty much:

Screen Shot 2014-06-03 at 5.14.19 AM.png

Swift is an innovative new programming language for Cocoa and Cocoa Touch. Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

Woah. Right then, time to get started earning your Swift merit badge, folks.

We’ll be adding good links as we find them, but just to get you started:

Welcome to the brave new Swift world! Especially to those Kotlin fans in the audience, as apparently the Swift designers were [EDIT: Nope, just common inspirations, so it appears…]

UPDATES:

10 Early Thoughts on the Swift Programming Language

Swift Language Highlights: An Objective-C Developer’s Perspective

Michael Tsai’s Swift Links

Learning Swift: Ordered Dictionaries

Say Hello to Cocos2D-Swift!

Swift Initializers

GoshDarnClosureSyntax and GoshDarnSwiftBlockSyntax and GoshDarnSwiftSyntax channel a popular Objective-C reference

Erica Sadun’s Swift postsplaygrounds, operator snippet, type conversions, …

Subclass UIApplication with Swift

Unit Testing in Swift

Terrible Swift Ideas!

@mhm500’s Swift Cheat Sheet gitbook

DaveWoodCom/XCGLogger: “A debug log framework for use in Swift projects.”

Mike Ash’s Friday Q&A 2014-06-20: Interesting Swift Features and Friday Q&A 2014-07-18: Exploring Swift Memory Layout and Friday Q&A 2014-08-01: Exploring Swift Memory Layout, Part II

jas/swift-playground-builder: “Create your own interactive Swift playgrounds with embedded documentation compiled from Markdown.”

Playground has never been so fun — bundle playground and library in workspace

We ❤ Swift on How to make awesome UI components in iOS 8 using Swift and XCode 6

Swiftly Typing on Error Handling

Inside Swift

Advanced Swift – Part 1 and Part 2

Ray Wenderlich’s Swift Tutorial: A Quick Start and Part 2: A Simple iOS App and Part 3: Tuples, Protocols, Delegates, and Table Views

Introducing the raywenderlich.com Swift Style Guide

SwiftDevs.co has tutorials, examples, etc…

CodingInSwift.com collects resources for forum discussions

Understanding Optionals in Swift; A Beginner’s Guide to Optionals in Swift; A Morning with Swift Optionals; Swift Optionals; Unwrapping Multiple Optionals; Implicitly Unwrapped Optionals In Depth; Understanding Optional Chaining; Optionals Case Study: valuesForKeys

Swift Sequences and Lazy Evaluation; Lazy by name, lazy by nature; Randomly Lazy

Follow @SwiftStack_ for Swift StackOverflow questions. (And @ObjectiveCStack for Objective-C.)

Subscribe to Swift Coder Weekly for a weekly digest, archives here; also Swift Dev Weekly

Dollar and Cent: “Dollar is a functional tool-belt and Cent is an extension for missing methods in Swift.”

pNre/ExSwift: “A set of Swift extensions for standard types and classes.”

Swift Toolbox “is a community-supported catalog of iOS and OSX libraries written in the Swift Programming Language.”

Making Multiplayer Games using AppWarp in Swift

The Core Data Stack in Swift; Open Source Library Providing A Core Data Query Language For Swift

Developing iOS8 Apps Using Swift – Create a To-Do Application, Connect to the iTunes Search API, Best Practices, Adding Interactions, Async image loading and caching, Interaction with multiple views, Animations, Audio, and Custom Table View Cells

Sign up for video tutorials starting July 1 from @SwiftCastTV

Swift Language Google Group

Swift & Cocoapods: “How to integrate Cocoapods into a vanilla Swift project.”

Swift Standard Library: “Documented and undocumented built-in functions in the Swift standard library – the complete list with all 74 functions.”

modocache/Quick: “A behavior-driven development test framework for Swift and Objective-C.”

We ❤ Swift: One month of Swift

Swift Programming — Medium link collection

Enough About Swift Closures to Choke a Horse

Custom Threading Operator in Swift; duemunk/Async: “Syntactic sugar in Swift for asynchronous dispatches in Grand Central Dispatch.”

Nil-coalescing Operator in Swift

Tutorial: Using Generics To Implement KVO In Swift

Programming Challenge: Are You a Swift Ninja? Part 1

MVVM, Swift and Reactive Cocoa — It’s All Good!

How to Use UIViews With Autolayout Programmatically

Swiftris: Build Your First iOS Game with Swift

Alamofire/Alamofire : Elegant Networking in Swift

Swift: Use for-in loops with your own sequence types

Algorithms & Data Structures with Swift

Getting started with UIKit Dynamics in Swift Part I and Part II

Learn -> Swift: “A no-frills introduction to Swift for busy and/or curious people.”

Instance Methods are Curried Functions in Swift; Swift Function Currying; Closure Expressions in Swift; First Class Functions and Delayed Evaluation in Swift

Locking in Swift: Helping Protect Me from Myself

Swift Operators

that thing in swift – “How do the Objective-C patterns we already know translate into Swift?”

Protocols in Swift: Blueprints for success; Swift Default Protocol Implementations

Apples to apples, Part II

Arrays and their Methods in Swift; Array extension to calculate summary statistics; Custom Subscripts in Swift

Swift Literal Convertibles for Foundation

Replace Magic Strings with Enumerations in Swift; Tuples, Structs and Enums; Raw​Option​Set​Type

Functional Wish Fulfillment; Maps… Wait, They Don’t Love You Like I Love You; Flattenin’ Your Mappenin’

NSNotifications with userInfo in Swift

Filling Table Views demonstrates using switch on tuples

Swift Dictionary Quick Reference

Continue Reading →
3
Page 2 of 98 12345...»