Under the Bridge

Open Source: Inkpad and Brushes

Well, this is a pretty sweet gift to the iOS world: Steve Sprang has open sourced full fledged drawing and painting apps!

sprang / InkpadInkpad in the App Store

Inkpad is a vector illustration app designed from scratch for the iPad. It supports paths, compound paths, text, images, groups, masks, gradient fills, and an unlimited number of layers.

Inkpad was designed with performance in mind – it can easily handle drawings with hundreds to thousands of shapes without bogging down. Export your finished illustrations directly to your Dropbox as SVG or PDF…

screen480x480.jpeg

sprang / BrushesBrushes in the App Store

Brushes is a painting app designed exclusively for the iPhone, iPod touch, and iPad. Rewritten from the ground up, Brushes 3 is universal — the same version runs on both your iPhone and your iPad. Move paintings between your devices and keep working wherever you go!

An accelerated OpenGL-based painting engine makes painting incredibly smooth and responsive — even with huge brush sizes. Brushes also records every step in your painting. Show off your creative process by replaying your paintings directly on your device…

brushes.jpg

That’s quite the additions to your sample code reference set, ‘tisn’t it now?

h/t: ManiacDev!

Continue Reading →
0

QuickLook Provisioning

Been upset about that QuickLook provisioning profile from a couple years back not working on Mavericks? Why, look here, there’s a shiny new and improved replacement out:

A Quick Look plug-in for Provisioning

Eventually, I decided to write my own Quick Look plug-in and add a bunch of new stuff that I had been wanting to display:

  • Developer certificates: Making it easier to verify that your keychain items match what’s in the profile.
  • Provisioning Profile UUID: When someone on the project team checks in a new Provisioning Profile in the Build Settings, the only information you have is that UUID of that new file. Showing the UUID lets you find the right match.
  • Entitlements: Checking the Push Notification environment, ubiquity container identifiers, and keychain access groups are essential for any app that uses Apple’s services.
  • Links: Whenever the provisioning is broken you spend a lot of time in various sections of the Dev Center. Why not make it easy to get there?

The results of a few days work can be found on GitHub. If you’re lazy like I am, just download the .qlgenerator file and pop it in your Library > QuickLook folder…

Et voilà, all the information you’d been used to getting, much more, and links everywhere:

Screen Shot 2013-11-02 at 7.16.56 PM.png

Kinda needs relabelling “ComprehensiveLook” with all that available, doesn’t it now? Big round of applause for Messr. Hockenberry!

Continue Reading →
1

UI Pattern: Float Label

This is a nice bit of clever for more elegant layout of your form entry screens; have the placeholder text animate into a label!

How the Float Label Pattern Started

I first had the idea for a new input pattern back in August. The idea was simple enough – animate placeholder text to show an icon beside the input so you don’t lose your context. I’ve been doing 99% mobile work for the past 2 years and little things like this can really add up. I wanted a solution that saved space, looked clean and clear, but didn’t forego usability…

… I designed a new version using text only, plus a slight animation for the float label. I spent a long time thinking about the micro-interactions of when the active color would change and how soon would the text animate after someone typed. These were tiny decisions made down to the very last keyframe in my 30 FPS file.

Screen Shot 2013-10-31 at 7.08.44 AM.png

… A few days later a long time Twitter friend, Jared Verdi, busted out the first real implemenation in Obj-C. Super cool. Somehow Jared’s github post blew up a bit and everyone seemed to be tweeting about it. Thankfully he named it something cool when he first implemented it because I never did – JVFloatLabeledTextField. The “float label pattern” was born.

And people who struggle with the design space on small screens — oh, wait, that’s everybody — are finding the concept of great interest; check the ‘Resources’ section at the bottom of that post and you’ll find links to proof of concepts in a variety of environments. Specifically to try it out in iOS at the moment, you have:

jverdi / JVFloatLabeledTextField — the original UITextField POC described above

iwasrobbed / RPFloatingPlaceholders — UITextField and UITextView versions

h/t: ManiacDev!

Continue Reading →
0

Animation Helpers

So what with animation becoming more of a thing in the brave new flat interface world, it behooves us to know a little more about it than we’ve probably bothered to so far, and there’s a really great read on it here (h/t: iOSDevWeekly):

Controlling Animation Timing

There is a protocol called CAMediaTiming which is implemented by CAAnimation, the base class of CABasicAnimation and CAKeyframeAnimation. It is where all the timing related properties – like duration, beginTime and repeatCount – come from. All in all the protocol defines eight properties that can be combines in a number of ways to precisely control timing. The documentation is only a few sentences per property so you could probably read it all and the actual header way faster than this article but I feel that timing is better explained with visualizations…

If you like the SpriteKit action paradigm, and wish Core Animation had something like it, why look here (h/t: @romainbriche):

CodaFi / CFAAction — Core Animation Actions in the key of SK

CFAAction is a wrapper around several common Core Animation animations that provides additional modularity and the ability to group and sequence actions.

CFAAction’s should be treated like SKAction’s, which means they are only run when they are submitted to a variant of -[CALayer runAction:]….

And if you want some really easy keyframed animation, check out (h/t: iOSDevWeekly):

IFTTT / JazzHands – A simple, keyframe based animation framework for UIKit.

Jazz Hands is a simple, keyframe based animation framework for UIKit. Animations can be controlled via gestures, scroll views, kvo, or ReactiveCocoa…

Currently, Jazz Hands supports three types of animations:

  • IFTTTFrameAnimation moves and sizes views.
  • IFTTTAlphaAnimation creates fade effects.
  • IFTTTHideAnimation hides and shows views.

And don’t forget our Grab Bag: Graphic Tweaks post for other stuff along these lines we noted over this last year, a good bit of it is still at least somewhat relevant.

UPDATES:

iOS 7 Tutorial Series: Introducing UIKit Dynamics

iOS 7 Custom transitions

Extensive UIKit Animation Library Allowing Block Based Animations, Spring Animations And More

Clear Animation Code

Continue Reading →
1

iBeacon Sightings

Today let’s take a look at what’s happening with one of the sleeper features of iOS 7: iBeacon! If you’ve managed to miss it so far, it’s Bluetooth microlocation broadcasters to supplement the accustomed location methods. No particularly big changes API-wise, a few new Core Location and Passbook methods, but it does have some rather interesting potential:

How Apple’s iBeacon Could Upend Retail Shopping

Forget about QR codes, NFC technology, kiosks, and tablets as the major game changers in retail; introducing iBeacon and Bluetooth Low Energy technology to our everyday retail experiences is like introducing the Flintstones to the Jetsons shopping mall…

Apple’s Location-Tracking iBeacon Is Poised for Use in Retail Sales

For retailers desperate to turn smartphones from distractions into a sales tool, it provides a quick way to target ads and other messages to consumers as they walk through a store. For Apple, it’s a chance to collect valuable shopping data and to build a mobile-payment platform into a dominant retail standard. Apple declined to comment. “IBeacon’s momentum is just getting started,” says Hari Gottipati, an independent tech consultant in Phoenix, “but it’s going to explode faster than anyone can imagine.”

How Apple iBeacon Will Transform Local Commerce

… iOS7 and iBeacon create an ecosystem-wide network effect overnight, with standard technology, offered in an open development environment. It’s very clear that Apple is starting to put the pieces together to allow consumers to make offline transactions with their device..

Apple Feature to Turn MLB Stadiums Into Interactive Playgrounds

Major League Baseball is launching a major initiative to make attending games at stadiums a completely interactive experience for fans.

Taking advantage of Apple’s iBeacon indoor mapping, a new feature in iOS 7, the MLB plans to customize its At the Ballpark app for everyone that walks into any of its stadiums nationwide…

iOS 7 iBeacons: Everything You Need To Know

S**t just got real.

Indeed.

So where can you pick up some hardware to try this out? Here’s a few links to start:

Estimote Beacons – real world context for your apps

Kontakt – Build your own iBeacon micro-location app in less than an hour

KST iBeacon [Alpha Program Participants Only!]

Roximity iBeacon – Take full advantage of iPhone’s new iBeacon framework, simply.

Twocanoes’s Bleu Station

How to Make an iBeacon Out of a Raspberry Pi

Or, if you’ve got a spare recent-ish device sitting around, there’s the Estimote Virtual Beacon app to get started now.

Source code and tutorials:

WWDC 2013 Sample Code’s AirLocate “shows how to use CLLocationManager to monitor and range CLBeaconRegions.”

iOS 7 Tutorial Series: Core Location Beacons

Dave Addey’s iBeacons overview

nicktoumpelis / HiBeacons “can be used to demonstrate both beacon advertising and ranging”

ohwutup / OWUProximityManager – “Detect and connect to nearby devices with iBeacons and CoreBluetooth.”

Estimote / iOS-SDK has Distance, Proximity, and Notification samples, described in their API Documentation.

UPDATES:

lgaches / BeaconEmitter: “Create an iBeacon with your MacBook.”

Can you Smell the iBeacon?

iOS Component For Creating A Pulsing Animation Great For Map Annotations And Beacons

iBeacons Used To Deliver Location-Based Access To iOS Newsstand Publications

How iBeacons could change the world forever

Reverse Engineering the Estimote

iBeacon Could Be Apple’s Secret Gaming Weapon, Developer Says

4 Reasons Why Apple’s iBeacon Is About to Disrupt Interaction Design

iBeacons Lessons Learned

Open Beacon Credentials: “Introducing a shared iBeacon identifier scheme for common personal use cases.”

The Emerging iBeacon Ecosystem – August 2014

Continue Reading →
0

SpriteKit Smorgasbord

So, you’ve probably heard about this new SpriteKit thing in iOS 7, right? If not, here’s the elevator pitch:

Sprite Kit is a powerful graphics framework for 2D games such as side-scrolling shooters, puzzle games, and platformers. A flexible API lets developers control sprite attributes such as position, size, rotation, gravity, and mass. Sprite Kit’s OpenGL-based renderer efficiently animates 2D scenes. Built-in support for physics makes animations look real, and particle systems create essential game effects such as fire, explosions, and smoke. To assist SpriteKit-based game development, Xcode supports texture atlas creation and includes a particle creator.

Pleasant change having all that in your OEM toolkit, isn’t it? Here’s what you have for documentation:

Sprite Kit Programming Guide

Sprite Kit Framework Reference

Texture Atlas Help

Particle Emitter Editor Guide

code:Explained Adventure

SpriteKit Physics Collisions

Sprite Tour

The next question is, why would we decide to use anything else? Well, let’s see what Ray Wenderlich thinks:

Sprite Kit Tutorial for Beginners

After this a lot of you may be thinking, “Well, which 2D framework should I choose?”

The answer that depends on what your goals are. Here’s my 2c:

  • If you are a complete beginner, or solely focused on iOS: Use Sprite Kit – it’s built in, easy to learn, and will get the job done.
  • If you need to write your own OpenGL code: Stick with Cocos2D or another option for now, as Sprite Kit does not currently support this.
  • If you want to be cross-platform: Choose Cocos2D-X or Unity. Cocos2D-X is nice because it’s “down to the wire”, built for 2D games, and you can do just about anything you want with it. Unity is nice because it gives you more flexibility (i.e. you can add some 3D aspects into your game if you want), however you have to go through a few more hoops to make 2D games.

The first two are gimmes, but the third takes a bit more thought. How’s your C++ or C# skills these days? You anywhere near as productive with either as in Objective-C? Make sure you factor that into your decision. How much of everything you want to do is actually cross-platform, and how much is going to require platform-specific work no matter what you do? How much extra time are you going to spend in the write once — debug everywhere loop? And what benefit are you actually going to get from jumping through all those hoops?

Around these parts, we’re solid advocates of doing whatever is fastest to get your MVP out, which means one platform, with all the latest labor-saving APIs. If it’s a hit, you’ll have plenty of money to hire people who know their stuff tp port it for you and/or write version 2 in a cross-platform manner while version 1 finances it. If it’s not … well, better you found that out before wasting more time and money on a cross-platform release, isn’t it? Make your own incremental revenue vs. extra resources invested vs. opportunity cost of delay model, and work it out for yourself. We’re pretty confident the ‘quick as you can with the least investment possible’ strategy comes out top under virtually all reasonable assumptions.

And just to put some sweet icing on that opinion cake, consider Apportable: cross-compile your iOS app for Android — surprisingly close to working last we tried it, and getting better all the time so we hear. And really, what other platform is worth any effort at all? Why, none worth even considering making part of your core competency, that’s our answer.

If that makes sense to you, and it should, consider doubling down on the iOS-first bet and going with Steffen Itterheim’s Kobold Kit:

Features and Requirements

Kobold Kit adds the following features above and beyond what Sprite Kit offers.

Add that up with their partnership with Apportable, and you’ve got a pretty interesting rapid development framework for the iOS-centric programmer.

Compelled yet? Here’s some more reading:

iOS Games by Tutorials is another Wenderlich team epic, and the best $54 you’ll spend getting up to speed. If you’re not that certain yet, of course there’s free tutorials in abundance:

Sprite Kit Tutorial for Beginners

Sprite Kit Tutorial: Animations and Texture Atlases

Sprite Kit Tutorial: How To Drag and Drop Sprites

How To Make a Game Like Space Invaders with Sprite Kit Tutorial: Part 1 and Part 2

Procedural Level Generation in Games Tutorial: Part 1 and Part 2

Sprite Kit Tutorial: Making a Universal App: Part 1 and Part 2

Here’s some other notes and samples worth flipping through:

SpriteKit Animations and TextureAtlasses describes how the always-awesome TexturePacker is a nice upgrade to the Xcode workflow

2D Game Development With SpriteKit — source at ChrisGrant / FirstSquadron

Spritekit Particle Fun — source at 7sharp9 / SpriteKit-Fsharp-Samples

iOS 7 Sprite Kit PhysicsDebugger

How I Went From 0 to Game with Sprite Kit in iOS 7

iOS 7 Sprite Kit: My Top 5 Pros and Cons

Sprite Kit vs. Cocos2D

Free Sprite Kit Video Tutorials

Use SpriteKit to Give Your iOS 7 Menu Some Animation!

sprite-kit.com aims to be “a central hub of tutorials, books, open source projects and various assets for developers working with Sprite Kit”

and search Github for other tidbits too!

UPDATES:

iOS 7 Tutorial Series: Introduction to Sprite Kit

Sprite Kit Tutorial: Space Shooter

Using Glyph Designer with Sprite Kit

SKPhysicsBody Path Generator

Open Source iOS Sprite Kit Helper Library That Makes Performing Common Behaviors Easier

iOS Library That Uses Swizzling To Draw Physics Bodies Makes Debugging Sprite Kit Physics Easier

Custom drawing in SpriteKit

Integrating Spine with SpriteKit Tutorial

SpriteKit Animations and TextureAtlasses

Airplay Tutorial: An Apple TV Multiplayer Quiz Game

Sprite Kit Tutorial: How to Make a Platform Game Like Super Mario Brothers – Part 1

Sprite Kit Helper Library Adding Support For Tileable Textures, Easier Animations And More

How to Create a Game Like Cut the Rope Using Sprite Kit

Using Swift and Sprite Kit for Physics and Particles

A simple “shoot-em-up” game with Sprite Kit and Swift

How I Used Swift to Build a Simple Touch Game for iOS

Card Game Mechanics in Sprite Kit with Swift

Continue Reading →
0

CoreData Sync: ZumeroIncrementalStore

So you may remember our post a little while ago on the not-so-simmering discontent with the then current state of CoreData sync, and a couple since on other cloud technologies to be aware of; but today we’d like to draw your attention to a new solution from Joel Grasmeyer who after surveying the landscape himself, decided to –what else? — write a new NSIncrementalStore to solve everybody’s problems!

Introducing ZumeroIncrementalStore

What Is It?

ZumeroIncrementalStore is an NSIncrementalStore subclass that lets you use Core Data with the Zumero SDK to sync data between iOS and Mac apps. Zumero is a “replicate and sync” technology based on SQLite that allows apps to be fully functional offline and sync in the background when they’re online.

What does that mean?

It means that you can add syncing to your Core Data app by swapping out Apple’s NSPersistentStore with ZumeroIncrementalStore, and as far as the app knows, it’s just using Core Data with a local data file. Then whenever you want your app to sync, you call a sync method in the Zumero SDK, and sync happens in the background…

If you’d managed like us to overlook the existence of Zumero so far, here’s the long form of “‘replicate and sync’ technology based on SQLite”:

Zumero asks (and answers): “What if that local database was all the mobile application had to worry about?” You update your database, and trust that it’s being updated as needed when the outside world changes. Zumero…

…makes sure the server has your latest changes.

…makes sure you have the latest changes from the server and from other mobile users.

…handles merges and conflicts in one place. By the time Zumero sends you new data, it’s already sorted out.

…worries about re-sending updates that didn’t go through earlier.

Did we mention speed?

In addition to reliability and simplicity, this approach can make your mobile apps significantly faster from the users’ point of view. No more waiting for a server call that never finishes (or at least feels that way). No stalls while data updates are processed, vetted, merged. Your database is small, fast and local, just like your app.

What do I need to learn?

Not much. We provide the tools to do this on your mobile platform of choice: native iOS and Android; Xamarin; PhoneGap; Windows 8.

Dealing with a Zumero database is just like dealing with any SQLite database, plus an extra line or two of initialization, and a “sync” call that probably happens in a background method that you write once and ignore thereafter…

Well, that certainly makes it sound like a pretty much optimal choice from the cross-platform architecture standpoint; and pricing appears reasonable too.

From the non-cross-platform architecture standpoint, flipping through the sample project that’s up at

grasmeyer / ZumeroIncrementalStore

does indeed look like it integrates into the accustomed Core Data workings just pretty much as smoothly as you could ask for. Not only that, it also addresses the memory issues with using Core Data for mass operations:

Bypass Core Data for Direct SQL Access

Brent Simmons wrote a blog post about using Core Data for the Vesper app where he mentioned that he likes many of the features of Core Data, but he is concerned about an edge case of updating 30,000 notes quickly without pulling them all into memory. I think ZumeroIncrementStore might be a solution to this issue. You can use Core Data for most of your in-memory object management, but if you ever need to “update a single value on 30,000 items”, you can always call reset the Core Data Managed Object Context, change the values directly in SQLite via the Zumero SDK, and then fault the objects again as needed for the UI…

So, looks like we’ve got a pretty good contender here to fix all the serious issues people have with the iCloud + Core Data stack, without giving up … well, anything, really. Next time you’re designing out a cloud data layer, give it a shot!

UPDATES:

iRareMedia / iCloudDocumentSync is another option for iCloud document sync.

Continue Reading →
1

Xcode 5 Collection

So no doubt by now you’ve been working with Xcode 5 for a while and noticed that there’s a good number of new features in it — personally, we’re looking forward to Mavericks Server running bots for us the most, never having to deal with a signing problem with Jenkins again will be none too soon — but probably haven’t had time to read up on them as thoroughly as you’d like, right?

If you took our advice in the Programming for iOS 7 roundup to go pick up the iOS 7 by Tutorials book, you’re up and running with all the essentials soon as you work through Chapters 9 to 15. If you didn’t, hey there’s another good reason to! In the meantime, the How To Use Git Source Control with Xcode in iOS 7 is free to read.

One thing they do give undeservedly short shrift to is the new documentation support though, which rather excites us. We were converted to appledoc enthusiasts in short order after finding it, adding a daily documentation build task to Jenkins last time we were leading a sizeable team; but it’s always annoying to introduce third party dependencies into your workflow — having that functionality in Xcode and tied right into code completion popups is pretty awesome:

Documentation in Xcode 5

The real awesome sauce on the awesome is that the compiler will verify your documentation. No, seriously:

2013-10-09: Matt Stevens points out -Wdocumentation, which is new in clang 3.2. From the Clang release notes:

… Clang parses the comments and can detect syntactic and semantic errors in comments. These warnings are off by default. Pass -Wdocumentation flag to enable warnings about documentation comments.

This will warn when the documentation’s variable names or return types don’t match the method signature.

Now that’s something we have never heard of in a development environment before. Sufficient reason to adopt this practice, NOW!

Another particularly promising callout is the improvements in autolayout. As we’ve documented, up to now its usage has been commonly … problematic. “Loathe with passion” would be a better way to characterize our experiences to date, actually; it seems the algorithm Xcode 4 used was “figure out what the user actually wants, then make up and throw in there with no warning a risibly non-functional set of constraints gleefully chosen to frustrate them as much as possible.” As noted here:

iOS 7 Tutorial Series: Auto Layout in Xcode 5

… In Xcode 4, the creation of a slightly complicated view was close to impossible because Xcode did too much to ‘help’ the developer, but didn’t give the developer any way of correcting it’s ‘help’…

Yes, indeed. You feel the pain? We feel the pain. But things are better now, so we’re told, and if you’ve avoided the whole problem so far, time to get on board:

… In iOS 6, Auto Layout was available and recommended, but not required. In iOS 7, Auto Layout has become more important, to the point of practically being required, because it facilitates the ability, provided by Dynamic Type, for users to select the font size to use in standard button, label, and text field controls, and then have the rest of the screen respond correctly to the change in font size…

… Because of Xcode 4’s over-helping in IB, many developers frequently reverted two the two other ways to implement Auto Layout based views: Visual Format Language (VFL) and manually instantiating NSLayoutConstraint objects. Thankfully, because of the improvements in IB you’ll probably not be using these methods as much in the future. I’ve found that views that were impossible to build in Xcode 4 IB can now be created quickly and easily in Xcode 5.

So yeah, we’ll give it another shot in the project we’re starting now and see if storyboards + autolayout have reached the point of tolerability yet. After we take another read through this thought-inspiring article:

Using Storyboards

Storyboards seem to be a big point of contention in iOS development. Some see them as wonderful additions, some as a poorly designed and pointless hindrance that Apple seems intent on force feeding us. There is one thing that’s consistent though: almost nobody is using them right…

If like us you’ve been inclined towards the “pointless hindrance” view thus far, check it out. Not convinced otherwise yet, but we’ll give his ideas a shot.

Another particularly nice convenience you might have skipped over is

Xcode Asset Catalogs

Not only do they sort out asset naming clutter, they let you build slicing and resizing into your assets and out of your code. Sweetness.

A lot of the tips in last year’s Xcode Grab Bag post are still applicable to Xcode 5 too; in particular we note that the Alcatraz Package Manager would be your go to for plugin discovery, soon as it gets sorted:

We’re working on releasing Alcatraz 1.0 for Xcode 5. Please be patient and don’t create issues until 1.0 gets released. Thanks!

In the meantime, should you feel like writing your own, check out

kattrali / Xcode5-Plugin-Template: “Basic template for creating a plugin for Xcode 5.”

A particularly nifty Xcode 5-only plugin is

ryanolsonk / LLDB-QuickLook: “Debugger commands to open images, views, and more using Quick Look.”

Here’s a great tip for dealing with The Dreaded Project Merge Conflict:

Easier merging of Xcode project files

A while back, I discovered a script called sort-Xcode-project-file in the WebKit project, which sorts the Xcode project by running the following command:

perl sort-Xcode-project-file [Project].xcodeproj/project.pbxproj

I started using it to make files easier to find in my projects and just nicer to look at. After a while, I discovered that it helps a lot with merging the Xcode project file. If both sides of the merge are sorted, there are fewer differences when merging, and makes almost all merges either automatic or extremely easy to tackle…

and finally, here’s a nifty tip for having Instruments tell you where that mysterious stuttering is coming from:

(TL;DR – Select Record Waiting Threads in the Time Profiler track info-panel thing.)

h/t: Pretty much all the above links came from the last few issues of iOS Dev Weekly, which if you’re not subscribed to, you should be!

UPDATES:

Xcode 5 Plugin Greatly Enhancing Built In Auto-Completion With Fuzzy Matching

Launch Arguments & Environment Variables

facebook / ios-snapshot-test-case is image matching for UIView/CALayers.

MoarFonts: “Use custom fonts for your iOS projects directly in Interface Builder, the WYSIWYG way”

OCLint: A static source code analysis tool for Objective-C and related languages

objc.io issue #6 has various articles on Xcode internals, CocoaPods, and Travis CI

larsxschneider / ShowInGitHub – “to open the GitHub page of the commit of the currently selected line in the editor window.”

Xcode Plugin Allowing You To Markup Links And Images Within Code And Console Output

Xcode Plugin Enabling Neater Code Alignment With Customizable Alignment Patterns

Xcode Plugin For Listing And Going Through To-Do And Fix-Me Items In Your Code

An Xcode Plugin Enabling Easy Use Of The Clang Source Code Formatting Tool

OMGThemes!

Code Pilot Goes Open Source and Gets Xcode 5 support

Project Statistics for Xcode: Major Update to V2 with Great Enhancements

dblock / fui will find imports unreferenced by code (note that storyboards do not count as code!)

Useful Xcode Build Phases

jfahrenkrug / StoryboardLint “A lint tool for UIStoryboard to find wrong classes and wrong storyboard/segue/reuse identifiers”.

Code Generation Tools To Reduce Errors Caused Storyboards And The Asset Manager

Xcode Plugin That Allows You To Automatically Extend Xcode Code Snippets With A Git Repository

Alcatraz: The Package Manager for Xcode

A Tool Enabling Easy Objective-C Dynamic Code Injection In Xcode And Appcode

8 Tips for working effectively with Interface Builder

__attribute__ directives in Objective-C

Xcode Debugger Quick Look

Some New Xcode Plugins For Enhancing Code Display, Interface Builder, And Code Completion

Clean up your projects with Xcode 5

Improving Debugging Workflow – Introducing MCSLLDBToolkit

NSHipster on Xcode Plugins

Tool: Xcode Plugin Providing A Nice GUI For Working With Cocoapods

Tutorial: Using Compiler Directives To Create Useful Custom Warning And Error Messages

Tool: An Xcode Plugin Adding A Nice Interface For Searching Through Memory On Simulator/Device

nomad-cli: “world-class command line utilities for iOS development.”

An Xcode Plugin That Automatically Creates Warnings For Any Unused Imports Found

Clang Diagnostics

An Xcode Plugin That Allows You To Easily Add Import Statements From Anywhere In Your Code

Xcode Plugin For Quickly Creating Localized Strings

An Xcode Plugin Highlighting Source Code Changes Based On The Git Repo

johnno1962/XprobePlugin: “Live Memory Browser for Objective-C Apps.”

crushlovely/Amaro: “Featureful iOS Boilerplate.”

Continue Reading →
0

Programming for iOS 7

One thing about being off wandering while everybody else is getting up to speed on a new iOS, hey they’ve got all their writeups ready for you to read when you get back. And my my, there are quite a lot this time around!

TL;DR – Head over to chez Wenderlich and pick up iOS 7 by Tutorials. This series has been a great one-stop for not overlooking anything worth attention since iOS5, and this latest 823 page magnum opus keeps up that tradition. (Or, if you feel like freeloading, check out the free samples: UIKit Dynamics Tutorial, What’s New in Objective-C and Foundation, Text Kit Tutorial, How to Update Your App for iOS 7.)

Still here with lots of time to read? Well, good. You’ll need it!

First up, these objc.io guys are getting better every issue — most attempts along these lines peter out well before issue #5 — and October’s issue is an iOS 7 collection:

A very nice-looking series, on day 19 right now, is Introducing iOS7 Day-by-Day: all sorts of more obscure nifty tidbits from QR codes to SafariServices.

And if you’re looking for design tips, there’s plenty in that UI Design for iOS 7 collection we started back when that was new.

Other miscellaneous collections and tidbits worth checking out:

Your Essential iOS 7 Developer’s Guide

iOS 7 Source Code Examples Covering UI Kit Dynamics And More

UIMotionEffects for Dummies

Creating a Custom Flip View Controller Transition and An Interactive Tab Bar Controller Transition

Library Providing A UIColor Category For Easy Access To iOS 7 Colors

Lifting the lid on the iOS 7 UIPicker

A simple way to detect at runtime if we’re running in UIKit legacy mode or the new “flat” variant

And in case you missed it in our ARM64 collection, plan your device testing matrix with

Updated iOS Device Summary with iPhone 5S and iPhone 5C

UPDATES:

Tutorial: Using iOS 7 UIKit Dynamics To Make A Pong Game (Animations, Collisions, Physics)

Tutorial: Getting Started With iOS 7′s Text Kit Framework

Handy Library Providing Easy Access To Colors And Gradients Used In iOS 7 Apps And Icons

Animated progress view with CAGradientLayer

Developing for the M7

What’s new with iOS 7 rounded rectangles

Easily Overlooked New Features in iOS 7

Synthesized Speech From Text

iOS 7 UIDynamic Source Code Examples Demonstrating Gravity, Collisions, Snapping And More

Easily Creating Dynamic Transitions On iOS With UIDynamics

Continue Reading →
2

Translation Tragedy

Oh noes! Remember that localization tool Linguan that we reviewed a while back with the delicately restrained conclusion of

buy it NOW. NOW! NOW! NOW!

Well, not enough of you listened to us, it seems:

It is with a heavy heart that today we’re announcing that we are looking for a buyer interested in acquiring our Mac localization tool Linguan … When sales didn’t make us rich as expected it turned out that there wasn’t enough income to allow for ongoing improvements…

As it stands right now Linguan produces annual sales of around 10000 Euros. This is also the minimum asking price we are hoping for. For anything less BytePoet’s CEO stated that he they wouldn’t agree to sell for but rather keep it as a reference project for their own use.

If we had a little more cash and time sitting around, we’d take them up on that. Seems there must be some translation company out there that’s foresighted enough to see the value in having a fully-toolchain-integrated submission service for Xcode developers, and would be willing to underwrite development or give you a referral percentage or something like that. But you’d also imagine Messr. Drobnik & co. wouldn’t have missed exploring that option, wouldn’t you. Well, if anyone out there is looking for a career in building development tools, we thoroughly recommend this as your first acquisition, it is unquestionably the best tool available to help you organize for an immensely valuable service!

Speaking of translation companies, once you have gotten your translation needed strings sorted out, what do you all use for a translation service? The project we’re working on now does 12 (yes, twelve) languages with Tethras who are a pretty common choice and we haven’t heard any complaints. But here’s some others who profess iOS-specific competence:

Applingua

Babble-on, who have a great localization tutorial. And like the Glossary here too.

DYS Translations

ICanLocalize, also have a decent tutorial

Langwich

LocalVersion

iPhoneLocalizer

Smooth Localize

TraductoPro

WordCrafts

Not overly iOS-focused options that we’ve noted positive feedback on somewhere or other:

Gengo

Globalme

Glyph Language Services

Other roundups:

The Developer Economics App Localization list

The Apptamin Localization list

Apple’s Third Party Localization Vendors list (also note the mothership resources list)

Or, if you want to crowdsource your translating, check out

AppTranslate.com

POEditor

Did we miss your favourite here? Or, more importantly, any listed here that you would warn against? Let us know!

UPDATES:

iOS Localization Tutorial: Localize Your Apps to Support Multiple Languages

Localization of Xcode iOS Apps, Part 1 and Part 2 and Part 3 and Part 4

jeroentrappers / LocalizationPOC: “Localization proof of concept for iOS. Let’s you change the language on the fly.”

Lin: A Localization Manager for Xcode 5

TraductoPro Releases a New More Convenient Way to Submit to the App Store

Continue Reading →
2
Page 7 of 115 «...56789...»