Posted by: bearc0025 | April 21, 2014

New Official Site

Visit our new site here:

Posted by: bearc0025 | March 20, 2014

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.

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 by: bearc0025 | August 7, 2013

Client App Updated: Eco Boy 3

431917_498486156885822_314605792_nI didn’t develop the original app, but I did the update.
Read More…

Posted by: bearc0025 | July 24, 2013

Vibracer: Fire and Ice – New, FREE iOS/Unity3d Game

Screen Shot 2013-07-24 at 10.52.54 AMVibracer: Fire and Ice – another FREE, iOS Unity3d game…
Read More…

Posted by: bearc0025 | July 23, 2013

Smeagle Beeps

mzl.fiaegszwNew 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…

Posted by: bearc0025 | July 21, 2013

iCloud Filling up? Delete Old iMessages/SMS Attachments

Screen Shot 2013-07-21 at 12.06.34 AMIf you’re reading this, you’ve probably received the email from Apple saying your iCloud storage is almost full BUT you can’t see what it taking up all the space. Hopefully this will help…
Read More…

Posted by: bearc0025 | July 20, 2013

Adding ChartBoost to an iOS Unity3d Project

Screen Shot 2013-07-20 at 10.40.13 AMI 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 by: bearc0025 | July 2, 2013

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 by: bearc0025 | June 17, 2013

OpenCV Detect Circle and Smile

opencv-logo2Here’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 by: bearc0025 | June 14, 2013

WWDC 2013 Videos Online

indexThe WWDC videos are being released here: https://developer.apple.com/wwdc/videos/

Enjoy!

Posted by: bearc0025 | April 24, 2013

Dev Rocket – Photoshop panel plugin for iOS developers

Screen Shot 2013-04-24 at 5.01.15 PM

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 by: bearc0025 | April 4, 2013

iOS in Practice mentioned in UNT Magazine

Cahill-iOS-4_webUNT’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 by: bearc0025 | April 2, 2013

Jumpstart Platform

Screen Shot 2013-04-02 at 12.27.41 PMI 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 by: bearc0025 | March 30, 2013

Removing an App from Multi-Task Memory

photoSometimes 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 by: bearc0025 | March 27, 2013

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 by: bearc0025 | March 21, 2013

We Denton Do It Showing Some Love

Screen Shot 2013-03-21 at 12.06.45 PMSome 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 by: bearc0025 | March 4, 2013

App Development: Consonant Pain

Screen Shot 2013-03-04 at 12.21.35 PMSuper happy for the client and people involved in Consonant Pain!

The app turned out great. Check out the video and the app!

Posted by: bearc0025 | January 10, 2013

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 by: bearc0025 | January 4, 2013

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…

Posted by: bearc0025 | December 28, 2012

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.

Posted by: bearc0025 | December 6, 2012

InVision App UI Design Tool

InVision UI DesignOne 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 by: bearc0025 | November 12, 2012

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:

Read More…

Posted by: bearc0025 | October 31, 2012

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 by: bearc0025 | October 23, 2012

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.

via Manning: iOS in Practice.

Print version available in November.

Posted by: bearc0025 | August 28, 2012

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 by: bearc0025 | June 8, 2012

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.

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 by: bearc0025 | June 7, 2012

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
  • Email
  • 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!

Posted by: bearc0025 | June 7, 2012

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 by: bearc0025 | May 15, 2012

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.

via Saving JSON to Core Data | Cocoa Is My Girlfriend.

Posted by: bearc0025 | May 8, 2012

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 by: bearc0025 | April 30, 2012

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.
So it seems Apple wants to protect you from potential issues even w/ apps that don’t go thru their review process.
It’s one part virus scanner and one part standards creator. There’s no telling what they could, at some point, require developers to do in order to pass thru “the Gatekeeper.”
I’m not too much of a conspiracy theorist but there is room here to theorize. When someone/something steps up in the name of protecting you, there’s always room for abuse.
I don’t develop for the Mac/OSX so this doesn’t affect me (as of now). And I don’t have a problem w/ the control they have over the App Store. I believe Apple generally wants developers going thru the App Store to do well bc it’s good for their business. But this is different since it’s for people specifically not going thru their App Store.
Also, this email was sent to developers. From a consumer perspective, I’ve never heard of Gatekeeper so that might be coming later – get the developers on board and then promote Gatekeeper w/ some number of apps already developed for it.
Anyway, this doesn’t affect me know, but I wanted to mention it to y’all that might be more affected or interested and hadn’t heard about it yet.
Posted by: bearc0025 | April 19, 2012

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!

Check it out here!

Posted by: bearc0025 | April 10, 2012

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 by: bearc0025 | April 9, 2012

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 by: bearc0025 | March 26, 2012

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 by: bearc0025 | February 13, 2012

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 restart Xcode and try again after a clean build.

Posted by: bearc0025 | February 7, 2012

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.

  1. First make sure you’re dealing w/ iOS 5.
  2. Then create your image and trackname.
  3. Use those two items in an array and a matching array of key values (here’s a list of all the key options).
  4. Create a dictionary of the objects and keys.
  5. 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 by: bearc0025 | February 6, 2012

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.

Posted by: bearc0025 | February 3, 2012

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 by: bearc0025 | October 12, 2011

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.

via imageNamed is evil « Under The Bridge.

[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!

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 by: bearc0025 | September 19, 2011

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…

 

 

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!

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.

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.

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 by: bearc0025 | June 30, 2011

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…

Older Posts »

Categories