AWS Tutorial: Adding User Authentication to a Mobile App

Adding user authentication with Amazon Web Services (AWS) can be pretty easy. You’ll need an AWS account and not much more.   The AWS Mobile Hub steps you through the process of creating a Project. Projects have Apps (e.g., iOS, Android, etc.).   AWS Tutorial at Accelebrate.com   For each app, you can add Backend Read more about AWS Tutorial: Adding User Authentication to a Mobile App[…]

iOS Development with Firebase (Online Course)

Firebase is popular software suite that enable mobile developers to quickly and easily add server-side functionality to apps: authentication, data storage, and more. This course explores some of the most useful services in the Firebase SDK for iOS app development. Instructor Bear Cahill starts by showing how to set up a project in the Firebase Read more about iOS Development with Firebase (Online Course)[…]

iOS Unit Testing with Xcode (Online Course)

Unit Testing for iOS Developers   Unit testing is a useful method for verifying functionality—both before and after development—and can help you catch and fix bugs. Xcode can automatically add unit test support to your projects. In this course, explore the fundamentals of unit tests in Xcode and discover how to add unit tests to Read more about iOS Unit Testing with Xcode (Online Course)[…]

iOS CoreBluetooth BLE Online Course

Adding Bluetooth LE functionality to your app can be intimidating. Dealing with hardware connections is always a bit of a mystery. CoreBluetooth really helps simplify the details and the heavy lifting. It boils down the connection and communication to something more familiar to most developers. The course: @Lynda @Linkedin Learning However, there are still a lot Read more about iOS CoreBluetooth BLE Online Course[…]

iOS Network Development Using URLSession and Alamofire Online Course Release

  iOS Network Development Using URLSession and Alamofire with: Bear Cahill …is now available on LinkedIn Learning: https://www.linkedin.com/learning/ios-network-development-using-urlsession-and-alamofire and on Lynda.com: https://www.lynda.com/iOS-tutorials/iOS-Network-Development-Using-URLSession-AlamoFire/645028-2.html Course Description: Networking is a common component of modern mobile apps, necessary for authenticating user accounts, fetching data, and downloading and uploading files. Learning the latest networking frameworks is vital to quality, maintainable Read more about iOS Network Development Using URLSession and Alamofire Online Course Release[…]

iOS slide in menu

Slide in Menu as an UIViewController Extension

  We often need to add a slide in menu to a UIViewController. It’s no easy task in Interface Builder. Here’s how to make one in code… Slide in Menu as an UIViewController Extension   First create a new file called MenuMgr.swift in your project. Declare the class… (link to the code at the bottom) Read more about Slide in Menu as an UIViewController Extension[…]

Using SharedPreferences Anywhere in Android app

Android/Java – SharedPreferences from anywhere in your App

Coming from iOS, I’m used to having access to UserDefaults anywhere in my code for storing user settings and such. Android requires a context to access SharedPreferences – pain.   SharedPreferences from anywhere in your App   So I created a Constants class that takes a context, creates a singleton and then allows for various Read more about Android/Java – SharedPreferences from anywhere in your App[…]

Validation for Email and Password

iOS/Swift Validate Email and Password Format

Here’s a couple of quick functions I use in a few forms in different projects. They’re pretty common and can be found other places. I based these on various things I’ve found online. So, like most things, I can’t take 100% credit but we all learned things from somewhere. The first is an email validator. Read more about iOS/Swift Validate Email and Password Format[…]

UITextField Form with Previous/Next Keyboard Accessory Input View as Extension (iOS/Swift)

UPDATED: Now use a scrollview instead of moving the view around. See the bottom of this post. Here’s how to easily, quickly create a manager for a form of UITextFields including Previous/Next buttons on a toolbar above the keyboard. It uses an extension on the UIViewController so it’s non-intrusive. All you have to do is Read more about UITextField Form with Previous/Next Keyboard Accessory Input View as Extension (iOS/Swift)[…]

Displaying an alert from an Extension

Display Alert Controller Popup from any UIViewController (iOS/Swift) Extension

Many apps use the UIAlertController to display information the user for them to acknowledge with an “OK” button. A UIViewController needs to present the alert controller to the user so I wrote an extension on UIViewController to handle this. This is just a simple alert to the user with an “OK” button that dismisses the Read more about Display Alert Controller Popup from any UIViewController (iOS/Swift) Extension[…]

Loading screen for iOS in Swift

Display a Loading/Waiting Activity Indicator (iOS/Swift)

Oftentimes, you need to display an activity indicator to the user when fetching or loading data.   It’s best to keep this in one place for ease of use. Also, it’s best to make sure this is done on the main/UI thread.   Loading Screen in Swift     Here’s a way to do it Read more about Display a Loading/Waiting Activity Indicator (iOS/Swift)[…]

wwdc keynote summary video

Watch Apple’s Two-Hour 2016 WWDC Keynote in 7 Minutes – Mac Rumors

It’s even less time if you watch it at 1.5 speed… Apple today unveiled new versions of iOS, watchOS, tvOS, and macOS, all of which are jam-packed with new features. iOS in particular was referred to as Apple’s biggest iOS update ever, with major improvements to Messages, Apple Music, Siri, and tons of other minor Read more about Watch Apple’s Two-Hour 2016 WWDC Keynote in 7 Minutes – Mac Rumors[…]

app development cost

App Development: Hire, Outsource or Freelance

There’s a not of pros and cons to the different approaches to getting an app developed. But first there’s apps and then there’s apps. App Development: Hire, Outsource or Freelance Does your “app” calculate tips? That’s pretty basic. But if you’re building “the next Facebook” it’s really more of a company you’re building. If you’re Read more about App Development: Hire, Outsource or Freelance[…]

Apple’s App Review Process Now Takes as Little as Two Days – Mac Rumors

Good news… Apple’s app review process has become significantly faster during the first five months of 2016, according to AppReviewTimes.com, a website that tracks average App Store review times for both the iOS and Mac App Store using data crowdsourced from developers on both platforms. Source: Apple’s App Review Process Now Takes as Little as Read more about Apple’s App Review Process Now Takes as Little as Two Days – Mac Rumors[…]

app development costs

App Development Cost – What Does it Cost?

The all important question everyone has to ask is: how much will it cost? App development cost varies based on several factors and can range widely. App Development Cost Of course the requirements of the app drive the app development cost. However, that’s not very clear since some requirements are easy/cheap and some are very Read more about App Development Cost – What Does it Cost?[…]

app cost

How Much Time and Money It Takes to Develop a Mobile App

Many mobile apps are so simple you might be tricked into thinking they took almost no time or effort to create. This infographic, outlining the mobile app development process, however, tells us that there’s a lot more to it.The graphic comes from app development company NineHertz. It says that it takes almost 18 weeks to Read more about How Much Time and Money It Takes to Develop a Mobile App[…]

xcode 7 - invalid bundle

Xcode 7 Invalid Bundle – iPad Multitasking Required Orientations

I started getting the Xcode 7 Invalid Bundle error: ERROR ITMS-90474: “Bundle Invalid. iPad Multitasking support requires there orientations:’UIInterfaceOrientationPortrait,UIIinterfaceOrientationPortraitUpsideDown,UIInterfaceOrientationLandscapeLeft,UIInterfaceOrientationLandscapeRight’. Found ‘UIInterfaceOrientationPortrait’ in bundle. Xcode 7 Invalid Bundle Fortunately the fix is easy: Select your project Select the General Tab Select your Target Check the box titled “Requires full screen” Done. More: xcode submit invalid bundle ipad Read more about Xcode 7 Invalid Bundle – iPad Multitasking Required Orientations[…]

CloudKit – NSHipster

Perhaps you’ve heard of iCloud Drive before—iCloud Drive is where we can store our user’s data and files for easy access from other devices. CloudKit is the framework that helps us do this easily in the apps we create. CloudKit – NSHipster Source: CloudKit – NSHipster

iOS icon resolutions

iOS Icon Resolutions Creator Script

I saw a script online somewhere (stackoverflow?) a while back that created some iOS icon resolutions. I updated it and found it very useful. iOS Icon Resolutions Create icon.sh in a directory and post the code below (don’t forget to chmod 777 the file). Then put the icon (1024×1024 png) in the same directory and run Read more about iOS Icon Resolutions Creator Script[…]

libGPUSupportMercury.dylib iOS Crash

libGPUSupportMercury.dylib iOS Crash

I’ve been seeing the libGPUSupportMercury.dylib iOS Crash and having a tough time nailing it down. I still can’t reproduce it predictably. However, I believe I have enough to avoid it. libGPUSupportMercury.dylib iOS Crash For me it’s happening in the initWithFrame: call for MKMapView in the background. The app monitors for significant location changes. When it’s Read more about libGPUSupportMercury.dylib iOS Crash[…]

significant location change

Test Significant Location Change – iOS Simulator

Testing location functionality can be tough. Significant location change updates especially so. Here’s how to test SLC in the simulator… Test Significant Location Change You may need to reset the simulator  (iOS Simulator>Reset Contents and Settings…) to test Significant Location Change. These steps assume you have setup your app to use the Location Manager to monitor Read more about Test Significant Location Change – iOS Simulator[…]

enable itunes testflight testing

iTunes TestFlight – TestFlightApp.com Shutting Down Services on 2/26

You may have noticed that TestFlight will shut down on 2/26/15 moving iOS app testing to iTunes TestFlight Beta Testing via iTunesConnect. While this is going to be work, it won’t be much different ultimately. Testflight has a useful FAQ on it. And Apple has a good site with a helpful video. iTunes Testflight Testers Read more about iTunes TestFlight – TestFlightApp.com Shutting Down Services on 2/26[…]

adhoc push notifications

Adhoc Push Notifications Not Working – Parse.com

Like many posts about parse.com adhoc push notifications not working, I was having problems receiving adhoc push notifications. I tried it all including recreating all the provisioning multiple times. Adhoc Push Notifications The solution, in this case, was simple: delete the app from my iPhone and try again. I believe it was mainly caused by the Read more about Adhoc Push Notifications Not Working – Parse.com[…]

Xcode 6 Auto-Increment Build Number Script

Xcode 6 Auto-Increment Build Number Script

I recently started using Parse.com’ crash reporting and wanted to pay better attention to my build numbers in Xcode.   I found this post on stackoverflow about it and used the solution. It works great and I certainly want to give credit where it’s due.     Xcode 6 Auto-Increment Build Number     Steps: Read more about Xcode 6 Auto-Increment Build Number Script[…]

Parse.com Crash Logs – Adding Crash Reporting

I found out yesterday that Parse.com offers crash reporting now. I love Parse.com and use it for many projects. It’s easy to integration and flexible in almost every way. It provides object database service, push notifications and more and with fairly low effort and low cost. No, I’m not a salesperson for Parse.com. I used Read more about Parse.com Crash Logs – Adding Crash Reporting[…]

simulate slow network

iOS/iPhone Simulator – Simulate Slow Network Speeds

I needed to simulate slow network speeds for the iOS simulator. There’s a pretty easy provided way to do it. Click on Xcode>Open Developer Tool>More Developer Tools… This will take you to an Apple website to download more tools (or just click here).   Pick “Hardware IO Tools for Xcode” and download it. The dmg Read more about iOS/iPhone Simulator – Simulate Slow Network Speeds[…]

beta-reports-active - scheme

beta-reports-active – Testflight app cannot be installed at this time

I started getting “app cannot be installed at this time” from testflight installs. From the device console, I saw that my app entitlements were setting beta-reports-active but my provisioning didn’t include it. You might also get this message: “Entitlements found that are not permitted by provisioning profile” beta-reports-active From what I could piece together from Read more about beta-reports-active – Testflight app cannot be installed at this time[…]

Error reading ‘pic’: Xcode6/cocoapods analyzer error

I started receiving this error today when building with Xcode 6: error reading ‘pic’…

I googled a lot and found helpful posts on how to fix it, but no single one of them did the trick. It seemed like I had to do several of them in combination and in the right order. I Read more about Error reading ‘pic’: Xcode6/cocoapods analyzer error[…]

NSMergeConflict CoreData Crash in iOS 7

I kept getting an error like this… NSCocoaErrorDomain Code=133020 “The operation couldn’t be completed. (Cocoa error 133020.)” UserInfo=0x1115a6d0 {conflictList=( “NSMergeConflict (0x1115a670) for NSManagedObject   I chased the bug for a while looking at all types of threading issues. In the end, it was just that my background context didn’t have a merge policy set on it… Read more about NSMergeConflict CoreData Crash in iOS 7[…]

MKMapCamera – Setting the Orientation of a MapView

Using the MKMapCamera, you can set the orientation of a map without messing with transforms on the view or even detecting the user’s heading (though that could be helpful too).

If you don’t want the animation, you can just set the new heading on the existing camera:

There’s some other really cool calls on Read more about MKMapCamera – Setting the Orientation of a MapView[…]

iOS in Practice - book

My Book “iOS in Practice” is the Manning “Deal of the Day”

Use code dotd042614tw at manning.com/cahill iOS in Practice is a hands-on guide with 98 specific techniques to help solve the specific problems you’ll encounter over and over as you work on your iPhone and iPad apps. You’ll dig into the practical nuts and bolts of applying views, view controllers, table views and cells, audio, images, graphics, Read more about My Book “iOS in Practice” is the Manning “Deal of the Day”[…]

Dallas/Ft Worth (DFW) App Development

The Dallas Morning News had a tech-blog a while back. It’s gone now. It has several articles on it about local (to DFW) app development shops including this one (Brainwash Inc.). The tech-blog is gone now due to the Dallas Morning News being purchased. I guess they shut down or replaced the tech blog. It’s Read more about Dallas/Ft Worth (DFW) App Development[…]

Disable ARC Compilation in Xcode for an iOS/Objective-C File

In some cases, you want to disable ARC in your project just for one or some subset of files. Usually this is the case, for me, that I’m using a file from an online repository that I don’t want to change for various reasons. The way to disable ARC for that file is in the Read more about Disable ARC Compilation in Xcode for an iOS/Objective-C File[…]

Changing iOS Font on All Widgets (UILabel, UIButton, etc.)

Sometimes it’s necessary to change the font on an app and you don’t want to go into Interface Builder and manually change them all. Ug. So you can recursively call a method to change the font on all subviews that respond to the setFont: method.

Check that it responds to the selector and call Read more about Changing iOS Font on All Widgets (UILabel, UIButton, etc.)[…]

Loading iOS ViewController in Code from a Storyboard File

In one project, I needed to present some one-off view controllers so I thought it would be best to put them in their own StoryBoard file and load them in code. I wrote a method that takes the view controller name (set in the Identity Inspector – see image). In this case it is “browserVC” Read more about Loading iOS ViewController in Code from a Storyboard File[…]

Forward Geocode in iOS with CLGeocoder

Similar to the post about reverse geocoding, the forward geocoded uses CLGeocoder. I wrote a quick static method that takes an address string (e.g., “4700 Louisiana 22 #1, Mandeville, LA 70471”) and a completion handler. All this method does is create the CLGeocoder for you and make the call. It’s mostly just a way to Read more about Forward Geocode in iOS with CLGeocoder[…]

Reverse Geocode in iOS w/ CLGeocoder

If you’re using CLLocationManager to obtain the user’s location, you can add some code in the delegate method to reverse geocode the user’s location…

Alloc-init a CLGeocoder and call reverseGeocodeLocation: w/ the location passed in (or any location) and a completion handler. I’m storing it in a instance variable to use later. Here’s some code Read more about Reverse Geocode in iOS w/ CLGeocoder[…]

iOS UIWebView Handle window.open/window.close PopUp Page

  I had a unique problem today – if a page opens a new ‘window’ in a UIWebView and then calls window.close to close it, how is that handled in iOS? UPDATE: Swift version added at the bottom. On top of that, the pop-up window was to allow the user to select a value for Read more about iOS UIWebView Handle window.open/window.close PopUp Page[…]

UIPopoverBackgroundView

I found my popover’s going to iOS 7 didn’t look so great. I searched around and posts were pointing to subclassing the abstract UIPopoverBackgroundView class. I found GIKPopoverBackgroundView and the demo app for it looked good. It was fairly easy to use – Copy GIKPopoverBackgroundView.h/.m into my project Copy the images from the images folder Read more about UIPopoverBackgroundView[…]

Storyboard – Unwind a Segue

From http://www.freelancemadscience.com/fmslabs_blog/2012/9/24/advanced-storyboard-techniques.html… In the controller you wish to return to, implement a method that returns an IBAction, and that takes a single UIStoryboardSegue argument: – (IBAction)returnActionForSegue:(UIStoryboardSegue *)returnSegue { // do useful actions here. } Now, in the scene we wish to unwind, control-drag from the UI element that will trigger the return to the scene’s Read more about Storyboard – Unwind a Segue[…]

Dev Rocket – Photoshop panel plugin for iOS developers

DevRocket is an iOS development panel plug-in that provides Adobe Photoshop with additional iOS specific tools and functionalities that are designed to assist key areas in iOS app design for all iPhone models including the iPhone 5 and all iPad models. A simplified solution to working between display resolutions, breaking down full ui designs into Read more about Dev Rocket – Photoshop panel plugin for iOS developers[…]

Manning: iOS in Practice – RELEASED!

iOS in Practice is a hands-on guide with 98 specific techniques to help solve the specific problems youll encounter over and over as you work on your iPhone and iPad apps. Youll dig into the practical nuts and bolts of applying views, view controllers, table views and cells, audio, images, graphics, file structure—and more. Examples Read more about Manning: iOS in Practice – RELEASED![…]

iPhone Development: Using Core Data with iCloud

A couple of good, similar posts about getting your Core Data database in iCloud for apps… iOS How-To : Using Core Data with iCloud – Une goutte d’eau dans la mare du web. http://timroadley.com/2012/04/03/core-data-in-icloud/ These steps/methods are pretty much cut-and-paste but require some Provisioning Portal steps, etc. I had to remove the dispatch call… dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, Read more about iPhone Development: Using Core Data with iCloud[…]

MacOSX 10.7.3 Update Breaks iOS App Validation

This was tricky… I kept getting: iPhone/iPod Touch: Icon.png: icon dimensions (0 x 0) don’t meet the size requirements. The icon file must be 57×57 pixels, in .png format (-19014) I found the fix here: MacOSX 10.7.3 Update Breaks iOS App Validation. Thanks Manbolo! Basically, get the latest version of Application Loader, run it and Read more about MacOSX 10.7.3 Update Breaks iOS App Validation[…]