Visit our new site here:
New Official Site
Posted in Brainwash Inc.
iOS 7.1 Features: Top 5 new iOS 7.1 features
Apple recently released iOS 7.1 w/ some new/updated features.
I like the minor UI changes they made to make things sharper, but there’s a few other settings that aren’t so obvious you might want to check out here:
iOS 7.1 Features: Top 5 new iOS 7.1 features to try right now | BGR.
I particularly like the new “Increase Contrast” options…
Go to Settings > General > Accessibility and tap “Increase Contrast.” You’ll now find three separate options in iOS 7.1.
“Reduce Transparency” will remove all of the transparency effects in areas including the home screen dock, folder backgrounds, the Control Center and the Notification Center.
“Darken Colors” will do just that: Darken all of the colors on the device’s display to make them more visible.
Finally, “Reduce White Point” will make whites on the screen less bright, which is another way to improve visibility.
Posted in iOS/iPhone/iPad | Tags: 7.1, ios, iphone
Freelance Mad Science Labs – Blog – Advanced Storyboard Techniques
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 exit icon (the green icon in the dock). In the popup menu, select the previously defined return item.
via Freelance Mad Science Labs – Blog – Advanced Storyboard Techniques.
Posted in How to make an App | Tags: done, exit, storyboard, unwind
Client App Updated: Eco Boy 3
I didn’t develop the original app, but I did the update.
Read More…
Posted in Client Apps | Tags: eco boy
Vibracer: Fire and Ice – New, FREE iOS/Unity3d Game
Vibracer: Fire and Ice – another FREE, iOS Unity3d game…
Read More…
Smeagle Beeps
New iOS Unity3d game: Smeagle Beeps…
The Smeagle Beep’s lovely landscape has been warped by the Shifty Shapes. Help restore the land by launching Smeagle Beeps at the shapes.
Goal:
Try to clear the level in as few shots as possible… or just slam the shapes!!!
Read More…
iCloud Filling up? Delete Old iMessages/SMS Attachments
Adding ChartBoost to an iOS Unity3d Project
I decided to add ChartBoost to a Unity game I was developing. I went to chartboost.com and got the unity plugin. The doco there was pretty good, but seemed to end w/ “These scripts demonstrate how to hook up exposed methods” and I wasn’t sure where to go.
Read More…
Posted in Game Dev, iOS/iPhone/iPad, Unity | Tags: ads, chartboost, game, unity, unity3d
iWatch – Apple Trademark Around the World
From macrumors.com…
“In addition to filing for a trademark on the term “iWatch” in Russia and Japan on June 3, we have discovered that Apple filed for a trademark in Taiwan, which follows a report from 9to5Mac that Apple filed in Mexico as well, bringing the total number of trademark filings to four.”
Posted in Mac/MacOS
OpenCV Detect Circle and Smile
Here’s a quick/easy demo project using OpenCV to detect a circle or smile (two different view controllers): https://github.com/lukagabric/iOS-OpenCV
Read More…
Posted in iOS/iPhone/iPad | Tags: opencv
WWDC 2013 Videos Online
The WWDC videos are being released here: https://developer.apple.com/wwdc/videos/
Enjoy!
Posted in iOS/iPhone/iPad
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 separate elements ready for Xcode and saving for the Retina display are just a few of the awesome features DevRocket brings to iOS designers currently using Photoshop.
via Dev Rocket – Photoshop panel plugin for iOS developers.
Caveat: I haven’t used this and I’m not a designer, but it seems like a good tool and a good price. If you have used it, let me know what you think.
Posted in Client Help, How to make an App, UI/UX | Tags: design, devboost, devrocket, photoshop, ui/ux
iOS in Practice mentioned in UNT Magazine
UNT’s The North Texan mentioned the book recently..
“…has worked on nearly 100 iOS apps as a freelance developer and has written a book on iOS development for Manning Publications titled iOS in Practice. He says he enjoys working from various locations around the Denton square, including Denton Square Donuts”
Posted in Brainwash Inc., How to make an App, iOS Development Book | Tags: book, brainwashinc, ios, north texas, unt
Jumpstart Platform
I haven’t used this, gotten the trial nor benefit in any way, but wanted to mention it b/c I think people might benefit from it since UI/UX is such a challenge to take from vision to reality.
Let me know if you have any thoughts on it especially if you’ve used it.
Read More…
Posted in Client Help
Removing an App from Multi-Task Memory
Sometimes it’s necessary to restart an app, but if you just run it again, it may still be in memory.
To remove it from executing/running memory, follow these steps…
Read More…
Posted in Client Help, iOS/iPhone/iPad | Tags: app, close, execution, ios, memory, multitask, remove, restart app
Fit4Today – Fitness App
No In-App Purchases – one price you get it. A simple tool to track your 400 rep workout.
Randomly generated 4-move workout. 10 reps, 10 times. 400 reps. Great for a quick, at-home workout.
A variation of the deck-of-cards workout but with out the variation of 2, 3, 4 reps – it’s all 10 reps.
One more tool in your fitness tool-belt… and probably one of the cheapest ones. 🙂
It doesn’t teach you the (basic) moves, but provides some variations and ability to search for variations and form.
This is just a tool to help you monitor your workout and does not intend to train, teach or instruct. Check with your physician before starting any fitness program. Use of this app implies agreement to no responsibility or liability for this app or Brainwash Inc. Workout responsibility.
Posted in 4Today, Brainwash Inc., iOS/iPhone/iPad, Our iPhone Apps | Tags: 400 reps, deck of cards, fitness, workout
We Denton Do It Showing Some Love
Some nice mentions of the company, the KDB app and the book all in one article… at WeDentonDoIt.com
“There are a few other non-one-off companies with big ties to Denton (we’re looking at you, Brainwash, Inc.),…”
Posted in Brainwash Inc., iOS Development Book | Tags: apps, beard, denton, ios in practice
App Development: Consonant Pain
Posted in Client Apps
Retrieving the File Name from Photo Album Images (iOS)
As a moderator at RayWenderlich.com, I’ve started answering some users’ questions.
Here’s one of the first I was able to answer for someone that others might find interesting. In case you ever need to find out the file name from the iOS photo album.
Posted in How to make an App, iOS/iPhone/iPad | Tags: assetslibrary, filename, ios, photoalbum
iOS Email Aliases for From field
I have several domains and a) want to check them all from 1 account and b) want to be able to write from them using that one account.
This isn’t tough w/ web clients (I use Yahoo!) but for my iOS devices it has the added challenge that I want to use the native client. That way if an app kicks me to the email UI, I can carry on as usual.
So the other emails are just forwards to my Yahoo account. No problem. But to have them as options to write from is different.
I found a couple sites that helped me figure out how to do this…
Read More…
iWatch: Apple working on smart wristwatch, rumors suggest
Possible Apple iWatch…
It looks like Apple thinks it’s time to dive into the wearable computing market.
The company is reportedly working on a Bluetooth smart watch, complete with call integration and a 1.5-inch OLED screen supposedly manufactured by RiT Display, a Taiwanese manufacturing company.
Read more: FoxNews.com
Also at Wimm.com they’ve posted that they’ve entered an exclusive agreement…
During the summer of 2012, WIMM Labs entered into an exclusive, confidential relationship for our technology and ceased sales of the Developer Preview Kit.
Similar speculation on the Wimm-Apple SmartWatch info here.
InVision App UI Design Tool
One of the toughest things about projects is communicating the various aspects: UI/UX, requirements, features, etc. And of those UI can be the hardest…
Read More…
Posted in Client Help | Tags: design, invision, prototype, ui/ux
Moms with Apps
The Moms With Apps blog supports family-friendly developers seeking to promote quality apps for kids and families.
Moms With Apps is based on the following principles:
Posted in iOS/iPhone/iPad | Tags: apps, family, kids, moms
Apple Marketing Resources
There’s a billion things you can do to market your app and there’s plenty of ways you can spend money to do it. There’s some Apple Marketing Resources you should check out first.
Read More…
Posted in Client Help, How to make an App | Tags: apple, appstore, featured, ios, itunes, marketing
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 written for iOS 6.
Print version available in November.
Posted in Brainwash Inc., How to make an App, iOS Development Book | Tags: book, development, ios, iOS 6, iPad
Remote Workers More Engaged, Committed
Nice little article about communication with remote workers versus on-site workers:
I agree the many people assume that being on-site (visible) means they are controllable, engaged, focused, etc. but I think it’s far from true as a rule. What I mean is, it’s not a given. It depends on the person, the job, the environment, etc. – too many variables.
For me, most tasks are best done outside of an office. The only things that might be better are things like meetings and even that’s questionable (a meeting at a cafe might be better than a conf room).
Of course, coding and such is best done undisturbed.
However, many managers I’ve worked w/ in the past have a very different job type that tends towards walking in at any time to discuss something, change things, etc. It reminds me of the Maker/Manager Schedule.
Also, I suspect a lot of managers wd be very nervous to think their employees would do better by NOT being around them.
Posted in Brainwash Inc. | Tags: maker-manager, remote workers, schedule
iOS Dynamic Method Resolution
Apple docs on Dynamic Method Resolution
UPDATED FOR ARC BELOW.
If you want a class to respond to a given method w/o knowing what that method is when coding, you can use Dynamic Method Resolution.
In my case, I wanted to store some values in a dictionary not knowing what would be stored there (JSON parsed into a dictionary). Then have my class respond to getters/setters by looking for the given item as a key in the dictionary.
The answer here by Amy Worrall provides the bulk of the solution.
Basically you override resolveInstanceMethod: to call class_addMethod which adds accessorSetter or accessorGetter depending on the method being attempted.
+ (BOOL) resolveInstanceMethod:(SEL)aSEL { NSString *method = NSStringFromSelector(aSEL); if ([method hasPrefix:@"set"]) { class_addMethod([self class], aSEL, (IMP) accessorSetter, "v@:@"); return YES; } else { class_addMethod([self class], aSEL, (IMP) accessorGetter, "@@:"); return YES; } return [super resolveInstanceMethod:aSEL]; }
Then implement those added methods, accessorSetter or accessorGetter, (I changed NSString to NSObject to allow for various class types to be stored in my dictionary. Also, for the setter, I remove ‘set’ and lowercase the next letter to turn something like setYikityBlar to yikityBlar)…
NSObject* accessorGetter(id self, SEL _cmd) { NSString *method = NSStringFromSelector(_cmd); // Return the value of whatever key based on the method name return [((EventItem *)self)->valDict objectForKey:method]; } void accessorSetter(id self, SEL _cmd, NSObject* newValue) { NSString *method = NSStringFromSelector(_cmd); // remove set NSString *anID = [[method stringByReplacingCharactersInRange:NSMakeRange(0, 3) withString:@""] stringByReplacingOccurrencesOfString:@":" withString:@""]; NSString *firstLowerChar = [[anID substringToIndex:1] lowercaseString]; anID = [anID stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:firstLowerChar]; // Set value of the key anID to newValue [((EventItem *)self)->valDict setValue:newValue forKey:anID]; }
UPDATE FOR ARC:
ARC requires a bit more precision in the interface declaration – otherwise you get compile errors. There’s a couple things you should be able to do. If you actually have the item you want to dynamically create the getter/setters for, you can declare the methods to be dynamic (see link at the top of this post).
However, in my case, I don’t have them as properties (I set them in another class like a dictionary). So I declared the getters/setters in the header, but don’t implement them. I do get a compiler warning that my class’ implementation is incomplete. If anyone has a better solution, let me know.
Posted in iOS/iPhone/iPad | Tags: class_addMethod, dynamic, dynamic method resolution, getter, reflection, resolveInstanceMethod, setter
App Developers Signal Apple Allegiance Ahead of WWDC and Google I/O
Some great content, quotes and charts in this article comparing analytics from iOS vs Android…
For every 10 apps that developers build, roughly 7 are for iOS.
via App Developers Signal Apple Allegiance Ahead of WWDC and Google I/O.
Another good quote from the article…
“For every $1.00 a developer earns on iOS, he can expect to earn about $0.24 on Android.”
Posted in iOS/iPhone/iPad | Tags: android, ios vs android, statistics
Launch Action Feature – Todo4Today iOS App
Todo4Today‘s new Launch Action feature allows you to set an action for the reminder time of the item.
The four options are
- Call
- Text
- URL
Once you have the app and purchase the Launch feature (Settings>Additional Features), you can add an Action to a given todo item.
For calls, text and email, you can use the Address Book to pick a person’s info to use.
When the reminder goes off, the action will automatically be launched.
Use with the Email Feature to send a todo via email including a launch action – send an email to 2pm@4todayapps.com with a subject of “Call John” and a body of “call:214.555.1212” then the todo will be sent to your phone and the reminder at 2pm will launch the call!
Todo List Item via Email – Todo4Today iOS App
Todo4Today‘s new email feature let’s you send an email to create a todo item in your todo list.
Once you have the app and purchase the Email feature (Settings>Additional Features), you can email 4TodayApps.com using these guidelines:
Email Address For Time:
For todo’s without a time, just send to todo@4todayapps.com.
If you want a reminder set at a certain time, put the time in the email address like…
- 2pm@4todayapps.com
- 1500@4todayapps.com
- 730am@4todayapps.com
Subject is Title:
Set the subject to the title of your todo like “Call John.”
Body is Notes/Actions:
Put the notes in the body of the email including phone numbers, email addresses, physical addresses – the notes field in the app will analyze for these and allow you to tap to call, email, map, etc.
Auto-Launch Actions
If you have the Launch Action Feature, you can use action items in your email body like: call:214.555.1212 or email:john.fake@gmail.com – then at the time of the reminder, the notification will start the action specified.
Posted in 4Today, iOS/iPhone/iPad, Our iPhone Apps | Tags: email, iphone app, todo email, todo list
Saving JSON to Core Data | Cocoa Is My Girlfriend
Tom Harrington post on CoreData/JSON conversion…
You may know me as @atomicbird on Twitter. Just a few days ago my book Core Data for iOS: Developing Data-Driven Applications for the iPad, iPhone, and iPod touch (co-written with the excellent Tim Isted) was published, and Matt invited me to contribute some Core Data tips to CIMGF. I’m going to start off discussing taking JSON data from a web service and converting it to Core Data storage. Along the way I’ll cover how to inspect managed objects to find out what attributes they have and what the attribute types are.
Posted in iOS/iPhone/iPad | Tags: coredata, harrington, json
OrderGuide App – Inventory By Touch
OrderGuide Inventory app on the App Store
Anyone or any employee can run inventory now (iPhone/iPod/iPad)! Add your inventory items and the order criteria and anyone can walk thru the shop and take inventory!
Synced with iCloud so all your devices have the same data. Start inventory on one device, finish with another!
Distributors:
Order Guide lets you add distributors (or stores) including address, contact info (and let’s you call or email) and notes. Now you can run inventory by distributor.
Locations:
You add your various locations which may be if you have multiple physical locations or just the various locations around your shop: Kitchen, Closet, etc. Now you can run inventory by location – check items upstairs, downstairs, back room, etc.
Inventory:
Add your items including name, notes, location, criteria of when to order, how much to order, cost, etc.
BUILT IN WEBSERVER!
This lets you add your inventory via a webpage instead of on the iOS device. Use a real keyboard!
Now you can run inventory by distributor, location and/or alphabetically! You (or an employee) just looks at the item’s order criteria (e.g., “less than 3”), if there’s less than 3 left, they turn ON the order switch.
As you run inventory, it calculates the bill at the top so you know how much you’re spending.
When it’s time to send, it builds an email with the full order (or separate emails for each distributor using the distributor’s contact email). The email uses your company name and contact info (see Settings).
Designed in conjunction with a cafe owner so it’s got real-world input from owners like you!
Send feedback and ideas to support@brainwashinc.com
Posted in Our iPhone Apps | Tags: cafe, inventory, iPad, iphone, order guide, restaurant
Apple Mac App Store Gatekeeper and Developer ID
From Apple…
The Mac App Store is the safest place for users to get software for their Mac, but we also want to protect users when they get applications from other places. Gatekeeper is a new feature in OS X Mountain Lion that helps protect users from downloading and installing malicious software. Signing your applications, plug-ins, and installer packages with a Developer ID certificate lets Gatekeeper verify that they are not known malware and have not been tampered with.Mac Developer Program members can sign applications with their Developer ID now to get ready for Gatekeeper. If you’re not already a member, join the Mac Developer Program today.
Posted in Mac/MacOS | Tags: apple, developer id, gatekeeper, mac, osx
DIY Attack – Draw-It-Yourself Game!
Now Availabile on the App Store!
YOU draw the game – the character, the ammo, the scrolling background and more! And you record the sound effects from the pew-pew to the explosions.
I’m not much of an artist so I figured you could do better. Fun for kids to make up their own game and have a train shooting lizards at flying tuna cans or whatever you want!
If you have an image online, you can enter the URL to download the image and use that. Warning – it will scale the image so square images are best.
Future features include letting you use the camera to set the theme images and sharing themes with others!
Posted in Our iPhone Apps | Tags: draw something, draw-it-yourself, game, ios
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, 0), ^{
… in Tim’s persistentStoreCoordinator method. It seemed to be a timing issue.
Posted in How to make an App, iOS/iPhone/iPad | Tags: backup, core data, coredata, icloud, iphone, sync
ToDo4Today – Virtual Assistant
New features:
– Todo via Email: Add emails by sending email!
– Launch Action: Launch Call, Email, Text or URL from your todo and as part of the reminder!
Today’s ToDos – create new events (including reminders) and import today’s events from your calendar – sync with iCloud across devices. Feel the satisfaction when you mark each one done – and watch the badge number count down!
You can add titles, notes, set priority and dial in reminders for each event. Keep it simple – tomorrow has enough worries of its own!
ToDo4Today also let’s you edit the calendar items from within the app! Or create a calendar event from a ToDo item in the app.
You can also share ToDo items with other via email. If they have the app, they tap on the link and it imports the item.
Other features coming soon! We’d love to hear your suggestions at todo4today@brainwashinc.com
Other features in the app:
* iCloud
As you create and edit ToDos, your list on other devices is updated.
* Calendar
Import today’s events as ToDos into the app. They are created with default priority and reminders based on settings. You can edit the actual calendar event from within the app or create a calendar event based on a ToDo create with in the app.
* Share
Email a ToDo to someone else including text from the ToDo and a link that opens the app and imports the ToDo.
* Action Notes
The notes field detects URLs, phone numbers, addresses and events. So when it’s time to make that call, ToDo4Today can start the call with a simple tap on the phone number!
Posted in Our iPhone Apps | Tags: email, email todo, iphone todo list, launch call, text, todo app, todo list
Draw Something Email
If you play Draw Something, you may have received the email below from March 24th.
I believe in a fairly short email, there’s a lot to notice…
- It starts w/ love
- They use humor, pop culture and informality (friendly)
- They quickly point out features they’re going to add which basically answers the questions users’ have had while identifying WITH the user (as opposed to an opponent stating something like “Fine, we’ll give you what you want.” They position themselves as ‘these are great features’/additions.).
- It points out they recognize they have bugs and are fixing them.
- They ask for more input on improvements.
- They recommending rebooting the device.
As a developer, I love to see this. No app is prefect. Even Apple apps crash. The point is, we need to identify WITH the user and recognize that even as great as iOS devices are, sometimes they need to be rebooted.
I think users are mostly ok w/ this type of thing. I see a lot of reviews talking about how “Well, it’s version 1 so I’ll give them time to fix these problems.”
Even though we should aim for perfection, ‘done’ is better than perfect. And from there, recognize that our customers are on our team.
———
Have we told you lately that we love you? Well WE DO! You guys and gals around the world have made this game amazing and we are so humbled and thankful to you for playing and sharing with us.
When we aren’t busy drawing new Hunger Games words or new words like Kung Fu or Green Day here at Draw Something HQ, we have been cranking out new features. Coming soon are:
Sharing drawings on Twitter and Facebook
Save drawings to your devices’ photo library
Notifications for Android devices
Increase of the max streak from 99 to 999 (you guys are rocking it!)
Pull down to refresh game status
UNDO button for your last brush stroke
Even better performance
More words
And a slew of other fixes and tweaks
We also know some of you are encountering issues like:
Coins, colors, and bombs not displaying (If you don’t see them right now, don’t worry, your stuff is safe!)
Games crashing or getting a black screen
Bugs that prevent you from completing your turn
Issues like the above and more will be fixed in our upcoming update! Please continue to reach out and provide info to us in our support community or by replying to this email – we are here for you and doing our best to help everyone as fast as we can!
As a quick note, many common issues are fixed by powering your device off and on. So please give that a shot first!
In addition to all of the above, you can expect more great features in the future – like the much anticipated ability to chat. (We’re excited about that too)
Thanks again for all your support and making Draw Something an amazing success!
-The OMGPOP Team
Posted in Client Help
MacOSX 10.7.3 Update Breaks iOS App Validation
How to Make an App: iPhone Lock Screen Image
If your app plays music, you may want to handle the remove audio control events. And you might also want to display applicable info like album art and the track name.
It’s not complicated, you mainly just need to know when to update it and what’s available to update. I use a method called updateNowPlaying.
- First make sure you’re dealing w/ iOS 5.
- Then create your image and trackname.
- Use those two items in an array and a matching array of key values (here’s a list of all the key options).
- Create a dictionary of the objects and keys.
- Set the now playing info (the dictionary from above) in the now playing info center.
-(void)updateNowPlaying; { /* make sure the have iOS 5 by checking for the applicable class. */ // Step 1: Check for iOS 5 if ([MPNowPlayingInfoCenter class]) { // Step 2: image and track name UIImage *musicImage = [UIImage imageNamed:@"logo.png"]; MPMediaItemArtwork *albumArt = [[MPMediaItemArtwork alloc] initWithImage:musicImage]; NSString *trackName = [musicFiles objectAtIndex:curAudioFileIndex]; // Step 3: Create arrays NSArray *objs = [NSArray arrayWithObjects: trackName, albumArt, nil]; NSArray *keys = [NSArray arrayWithObjects: MPMediaItemPropertyTitle, MPMediaItemPropertyArtwork, nil]; // Step 4: Create dictionary. NSDictionary *currentTrackInfo = [NSDictionary dictionaryWithObjects:objs forKeys:keys]; // Step 5: Set now playing info [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = currentTrackInfo; } }
Posted in How to make an App, iOS/iPhone/iPad
How to Build an App: iOS Background Audio Controls
Allowing your app to receive remote audio control events is pretty easy.
The gist of it is to just tell the OS you’re interested in being told of the events. Then you just have a callback for the events and you can act on them.
For the view controller that’s playing music, you can declare interest in receiving the events in the viewWillAppear: method like this…
- (void)viewDidAppear:(BOOL)animated { |
[super viewDidAppear:animated]; |
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; |
[self becomeFirstResponder]; |
} |
Do the reverse in the viewWillDisappear: like this…
- (void)viewWillDisappear:(BOOL)animated { |
[[UIApplication sharedApplication] endReceivingRemoteControlEvents]; |
[self resignFirstResponder]; |
[super viewWillDisappear:animated]; |
} |
Then you’re ready to handle the events…
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent { |
if (receivedEvent.type == UIEventTypeRemoteControl) { |
switch (receivedEvent.subtype) { |
case UIEventSubtypeRemoteControlTogglePlayPause: |
[self togglePlayPause]; |
break; |
case UIEventSubtypeRemoteControlPreviousTrack: |
[self playPrevTrack]; |
break; |
case UIEventSubtypeRemoteControlNextTrack: |
[self playNextTrack]; |
break; |
default: |
break; |
} |
} |
} |
See details here in Apple documentation.
How to Build an App: TestFlight – Testing Apps by Users
I added a new category called ‘how to build an app‘ and this is a great post for it. It’s certainly not the very first step in how to make an app, but it’s important.
TestFlight is a great, free service that allows you to send builds to testers for use on their device. It greatly simplifies the process both in time and technicality. I’ve spent hours with some clients explaining how to install a build (which changes as you can see from that post). It can be cumbersome and flaky at best.
I don’t want to duplicate the TestFlight documentation, but here’s a few of the features that they offer that make things easy and simply for both sides…
Upload builds – dragging an ipa file onto the website is about the hardest part. Granted you need to invite testers (which includes them creating an account etc., but it’s similarly simple: they get an email, click on a link, etc.).
View Crash Reports – I’m not saying your iOS apps crash, but I’ve heard some do. If so, you can view users’ crash reports on the site. I don’t need to tell you how helpful it is to see the symbolicated crash report from a user. And to do it w/o having to walk them thru finding the crash reports, etc.
General Easification – Not a word, but it should be. The point is – TestFlight is great and ‘it just works.’ From including links to setup a device or install a build to explaining how to upload your .dSYM – they clearly are developers and think like it. You can even put in checkpoints to view what your users are doing.
I have no business relationship w/ TestFlight – I use it and love it. Check out the TestFlight SDK documentation and see how quickly you can get started.
Posted in Client Help, How to make an App, iOS/iPhone/iPad | Tags: crash reports, dsym, how to build an app, ios testing, symbolicate, test builds, testflight
imageNamed is evil « Under The Bridge
UIImage imageNamed is nice that it caches, but w/o being able to control when it clears the cache, it can be trouble.
However, as this example (below) shows, there’s an easy way to avoid the imageNamed cache, create your own references and clear it when you’d like.
Posted in iOS/iPhone/iPad
UITableView backgroundColor always gray on iPad – Stack Overflow
[myTableView setBackgroundView:nil];
via UITableView backgroundColor always gray on iPad – Stack Overflow.
I ran into this problem where the view backgrounds were always gray. Confusing!
As the post stats, try one of these:
[myTableView setBackgroundView:nil];
[myTableView setBackgroundView:[[[UIView alloc] init] autorelease];
I tried the first - ignoring the warnings as a test - and it worked. This is for an internal/prototype app so I'll wait to see if I get in trouble before heeding the warnings. :)
Living on the EDGE!
Posted in iOS/iPhone/iPad
VIDEO: Apple to make iPhone announcement Tuesday – News – Daily Campus – Southern Methodist University
Some video including me being interviewed on the upcoming (now past) announcement of the iPhone 4S.
Posted in iOS/iPhone/iPad
Create iPad XIB with Xcode 4 – Stack Overflow
Can’t create iPad XIB with Xcode 4 – Stack Overflow.
A helpful post about how to do something that was quite easy in Xcode 3…
Posted in iOS/iPhone/iPad
Mac 101: Capture your signature using OS X Lion’s Preview app | TUAW – The Unofficial Apple Weblog
Mac 101: Capture your signature using OS X Lion’s Preview app | TUAW – The Unofficial Apple Weblog.
Lion’s version of Preview comes with a built-in signature scanner that makes signing documents far simpler. In the Annotations toolbar you now have an option to create a signature from your Mac’s built-in iSight camera. All you need to do is use black ink to sign a piece of white paper, align your signature toward the camera using the onscreen guides, and take a snapshot of the signature. (I haven’t used my real signature here, obviously.)
As it states, I never tried it w/ previous versions so I can’t compare. But having a quick way to sign PDFs will be very helpful!
Posted in Mac/MacOS
Stack trace or more info on unhandled exception in Xcode/iPhone – Stack Overflow
A friend sent this to me and it sounds great – I’ll have to try it. If you do, let me know what you think…
If you add two breakpoints, you should be able to debug these exceptions. To do this, go to Run | Show | Breakpoints and create two global breakpoints (I do them globally because they are so useful in all my applications). The first should be named “objc_exception_throw” and its location should be “libobjc.A.dylib”. The second should be “-[NSException raise]” and its location should be “CoreFoundation”.
Now, if you start debugging your application with breakpoints enabled, it should break on the throw of these exceptions. You should then be able to see the chain of events that led to the exception within the debugger.
via Stack trace or more info on unhandled exception in Xcode/iPhone – Stack Overflow.
Posted in iOS/iPhone/iPad
Duck and Resume: a little love from the iPhone music player
It’s quite clear from the Apple documentation that this is possible. As is their wont, they have pages and pages of documentation saying what is possible, but not a single piece of code. And in this case, there is one crucial piece of info missing from their documentation.
via Anna Callahan » Blog Archive » Duck and Resume: a little love from the iPhone music player.
Great post about how to have music fade some, but not completely, when playing another audio file.
Posted in iOS/iPhone/iPad
Dev Juice: How do I autocomplete in Xcode 4? | TUAW – The Unofficial Apple Weblog
Dev Juice: How do I autocomplete in Xcode 4? | TUAW – The Unofficial Apple Weblog.
Creating your own custom snippets and naming them with shortcuts is just as easy. Select text in the Xcode code editor. Click and hold for a second in the selection and then drag it over to the library. It appears at the end of the library list and is named My Code Snippet by default.
I use a lot of completions, but I probably need to start making some of my own. It takes time to save time.
Posted in iOS/iPhone/iPad
iOS 5 beta update iPhone/iPad
I do it every time! The beta of the new iOS comes out, I update to it and regret it. Every time.
Every time I do it, I can’t remember the reason I regret it and so I do it again the next time. I need to write it down… here?
[UPDATE: I also always forget that the betas expire… and never at the right time. Like a smoke alarm beeping in the night.]
So I updated to iOS 5 the other day. Regret. Actually, this time it probably wasn’t as bad as usual…
Read More…
Posted in Brainwash Inc.