Learning Android, Here Are Some Helpful Resources

So I recently started learning Android Development for my company, WGGB (ABC40 / Fox 6). With a project to work on I’ve been able to dive head first into it, so I thought I’d share some of the resources that have helped me out thus far.

Books:
Beginning Android 4 Application Development, by Wei-Meng Lee
The Busy Coder’s Guide to Android Development, by Mark L. Murphy

Online Resources:
Android Design Guide
Android Package Reference
User Interface Guidelines
Android Unused Resource Detector
Android Asset Studio

As always, the best online resource in the world for a developer is Stack Overflow.

The technology behind Jiu Jitsu Log 2.0

It’s been a four months since the last release of Jiu Jitsu Log. The new version (2.0) contains a social component that will allow people to share their individual log entries with the world. The world, in turn, can like, comment and download the log entry to their app.

A lot went into creating the social component of the app, but the major engine behind the scenes of the social component is Parse. With Parse, you can add a scalable and powerful backend in minutes and launch a full-featured app in record time without ever worrying about server management. They offer push notifications, social integration, data storage, and the ability to add rich custom logic to your app’s backend with Cloud Code. You can also use Parse for push notifications, data storage, social integration, and more.

I also used quite a few third party classes:

Amazon S3 iOS SDK
Create iPad, iPhone, and iPod applications that leverage AWS using the AWS SDK for iOS. The SDK helps remove complexity by providing iOS APIs for many AWS services including Amazon S3, Amazon SQS, Amazon SNS, and DynamoDB. The single, downloadable package includes the AWS iOS Library, code samples, and documentation. Note: Because Parse doesn’t allow you to store large files, I chose Amazon S3 for the job.

iRate
iRate is a library to help you promote your iPhone and Mac App Store apps by prompting users to rate the app after using it for a few days. This approach is one of the best ways to get positive app reviews by targeting only regular users (who presumably like the app or they wouldn’t keep using it!).

PKRevealController
PKRevealController is a delightful view controller container for iOS, enabling you to present multiple controllers on top of one another. It is easy to set-up and highly flexible.

MBProgressHUD
MBProgressHUD is an iOS drop-in class that displays a translucent HUD with an indicator and/or labels while work is being done in a background thread. The HUD is meant as a replacement for the undocumented, private UIKit UIProgressHUD with some additional features.

YLProgressBar
The YLProgressBar is a custom progress bar for iOS (4.0 or over) with an animated background. It has been implemented using the Core Graphics framework, it is so resolution and color independent. I use this during the upload process of sharing a log entry.

MGBox2
Designed for rapid table and grid creation with minimal code, easy customisation, attractive default styling, using modern blocks based design patterns, and without need for fidgety tweaking or awkward design patterns. Includes blocks based gesture recognisers, observers, control events, and custom events. MGBox2 represents the major portion of the user interface in the social component.

Objective-Zip
Objective-Zip is a small Objective-C library that wraps ZLib and MiniZip in an object-oriented friendly way.

PrettyKit
PrettyKit is a small set of new widgets and UIKit subclasses that gives you a deeper UIKit customization. You will be able to change their background color, add gradients, shadows, etc.

IAPHelper
A class I found on Ray Wenderlich’s amazing tutorial site for managing In-App purchases. It’s a great read and a great introduction into in-app purchases.

That’s pretty much it. Jiu Jitsu Log for me a is a labor of love. It’s not going to make me rich, but writing it has been a great learning experience and it allows me to try out new technologies that I can bring into my day job. I submitted Jiu Jitsu Log to the app store tonight, so hopefully it goes through in a few days. In the mean time, I have to create video and text tutorials so people know how to use it when it gets released.

Here are some screenshots (both iPhone 4 and iPhone 5) of Jiu Jitsu Log 2.0.

This slideshow requires JavaScript.

10 Websites I can’t live without

Facebook
Because I’m a social addict.

stackoverflow
Hands down the best technical resource on the web today. It’s a question/answer web site that has an amazing community of users. If you’re a developer, you NEED this website.

GitHub
GitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both paid plans for private repositories, and free accounts for open source projects. As of May 2011, GitHub was the most popular open source code repository site. If you’re a developer and you don’t know git, it’s time to git with it! (see what I did there?)

Bit.ly
Bit.ly is a URL shortening service, but it’s also much more. Save, search, and organize all your links from around the web. Group them into bundles. Share them with friends.

TestFlight
TestFlight is a free Over-The-Air platform used to distribute beta and internal iOS applications to team members. Developers can then manage testing and receive feedback from their team with TestFlight’s Dashboard. Best of all, it’s FREE.

Parse
With Parse, you can add a scalable and powerful backend in minutes and launch a full-featured app in record time without ever worrying about server management. They offer push notifications, social integration, data storage, and the ability to add rich custom logic to your app’s backend with Cloud Code. Parse allows your team to focus more on creating a great user experience and forget server maintenance and complex infrastructure. Instantly add push notifications, data storage, social integration, and more, the moment you integrate a Parse SDK into your app.

Gmail
Gmail goes beyond ordinary email. You can video chat with a friend, ping a colleague, or give someone a ring – all without leaving your inbox.

Amazon
This is where I make most of my online purchases, include instant movies, books and products. I love Amazon.com.

ManageWP
ManageWP is the world’s first and finest all-inclusive WordPress management console that gives users full power and complete control in managing virtually any number of WordPress sites in the easiest way possible.

Apple Developer Site
This is where it all happens for Apple developers.

10 Mac apps I can’t live without (updated)

Here is a list of the top 10 applications I use on my Mac. If you’re a mac user, it’s possible I have some software that you may find useful.

Evernote
Evernote makes it easy to remember things big and small from your everyday life using your computer, phone, tablet and the web.

Feedly
Feedly is a beautifully designed Google Reader client, which means you need a Google Reader account to use the app. However, when Google reader dies off later this year, your Feedly account will still work as if nothing has changed. More information here.

Xcode
The Xcode developer tools package provides everything you need to create great applications for Mac, iPhone, and iPad.

Snapseed
Snapseed – brought to you by Nik Software – makes any photo extraordinary. Easily enhance your photos, add amazing effects, and share them everywhere.

Dropbox
Dropbox is a free service that lets you bring all your photos, docs, and videos anywhere. This means that any file you save to your Dropbox will automatically save to all your computers, phones and even the Dropbox website.

Desktop Tidy
Desktop Tidy maintains a “Shadow Desktop”, moving any files found on your actual Desktop and keeping it completely clear.

VLC Media Player
VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as DVD, Audio CD, VCD, and various streaming protocols.

uTorrent
Elegant, efficient torrent downloading.

Terminal
The built-in terminal that comes with OSX.

VIM
The built-in text editor that comes with OSX, I use it mainly in the Terminal. TO run it, simply open the Terminal app and type vim on the command line. To learn more about it, type ‘vimtutor.’

Custom URL Shorteners with Bit.ly

So, I’m a little late to the party on this, but using bitly.com, you can set up your own URL shortening service. All you have to do is register the domain and make a change to your DNS records. Mine is (sprl.in) http://sprl.in/TUQJHd

Why would you want to do this? If you’re running a company and want to direct a lot of traffic back to your site (especially using Twitter), it’s better to use a URL shortener so that you can save precious characters for your tweets with minimal characters being used for the actual link. And if you’re going to use a URL shortening service, you may as well use one like bit.ly that allows you to use your own domain so you can keep your branding consistent.

It used to be that if you wanted your own custom URL shortening service that you had to build it from scratch, something I did a while back using Ruby on Rails but lost interest in maintaining it.

Top-down interface orientations in a UITabBarController app

Okay, so this had been driving me crazy. I have a UITabBar app that I wanted to be able to control the orientation for based on which controller I was accessing.

I had found a piece of code that seemed really hopeful:

At first glance and first try this worked great, until I ran across one of my controllers that was using a UINavigationController. So self.selectedViewController was returning UINavigationController instead of the actual view controller my app was accessing. After some head scratching, I put this together, which seems to have done the job for me.

This seems to cover all the bases I need to control my interface orientation based on the controller. I hope this helps someone.

10 mac apps I can’t live without

Here is a list of the top 10 applications I use on my Mac. If you’re a mac user, it’s possible I have some software that you may find useful.

Evernote
Evernote makes it easy to remember things big and small from your everyday life using your computer, phone, tablet and the web.

Cyberduck
Cyberduck is an open source FTP and SFTP, WebDAV, Cloud Files, Google Docs, and Amazon S3 client for Mac OS X and Windows.

Reeder
Reeder is a beautifully designed Google Reader client, which means you need a Google Reader account to use the app.

Xcode
The Xcode developer tools package provides everything you need to create great applications for Mac, iPhone, and iPad.

Skitch
Skitch is an easy-to-use, free app that helps you capture, edit and markup your screen captures and images with shapes and comments.

Twitter
Follow your interests: instant updates from your friends, industry experts, favorite celebrities, and what’s happening around the world. Get short bursts of timely information on the official Twitter for Mac app.

Pixelmator
Beautifully designed, easy-to-use, fast, and powerful image editing app for the Mac.

Snapseed
Snapseed – brought to you by Nik Software – makes any photo extraordinary. Easily enhance your photos, add amazing effects, and share them everywhere.

Dropbox
Dropbox is a free service that lets you bring all your photos, docs, and videos anywhere. This means that any file you save to your Dropbox will automatically save to all your computers, phones and even the Dropbox website.

Desktop Tidy
Desktop Tidy maintains a “Shadow Desktop”, moving any files found on your actual Desktop and keeping it completely clear.

Got my Florida License today

I got my Florida license today and registered to vote (Democrat of course). They had to go through the whole process twice because even though I reminded the gentleman at the counter to make sure he brings over my motorcycle endorsement, he forgot. So, he had to type it up and take my picture for a second time. I’m starting to see why voting down here is such a mess.

First time in my life my only vehicle is a motorcycle. I guess that makes me a biker. We still have the minivan, but that belongs to Kara. So for now, it’s just me and my Harley.

I used to be a WordPress theme designer

It’s true. I used to design themes for WordPress, in fact back in 2006, I created a theme called Benevolence, which went on to be used by hundreds of thousands of blogs and to this day is the 69th most popular theme in the WordPress.com theme showcase. Of course, by todays standards that theme is a piece of shit. The design is horrible, it has no admin panel to make updates to, it has no widgets, it’s in no way “responsive” and probably not even XHTML compliant, but hey, it’s got grass near the top! People saw that grass and the rest didn’t matter. That’s right, all it took was some pretty grass and I got hundreds of thousands of downloads. I wouldn’t put that theme on my worst enemy’s website.

After the success of Benevolence, I started creating a bunch of other themes. I even partnered with Matthew Good, the musician (yes that Matthew Good) to build some pretty cool themes that had neat ajax features and nice artistic designs, courtesy of Matt’s artistic eye. Neither of us ever made a dime off any of our themes, we just loved to design and build stuff.

So why is it that I USED to design themes but don’t anymore? The truth is that I fell out of it a while back in favor of writing Ruby on Rails code and once I got back into the WordPress game, I was much more interested in writing PHP code than I was in designing sites in Photoshop and breaking up PSDs into HTML5 code. Not only that, just about every conceivable idea for a WordPress theme has already been realized. So, it’s truly much easier to go out and find something you love and modify it than it is to come up with something from scratch.

There are tons of beautiful themes out there, my favorite three sites for theme shopping are themeforest.com, elegantthemes.com and woothemes.com. Between those three sites and all the free themes out there, it’s almost impossible to not find something you love.

When it comes to WordPress websites, I have much more fun tinkering with the engine than I do spraying on the paint.

So What’s New?

Okay a few things… First, I haven’t been posting here much lately because the fam and I are preparing to move to Florida. I’m going to continue to work for ABC 40 remotely as a web and iOS developer, which I’m excited about because I love the work I’ve been doing for them. We have family and friends in Florida and moving their is something we’ve wanted to do for many years now, so we’re finally doing it. I’m very excited about this new start.

I’m also excited about the release of iOS 6, the new Xcode and APIs. I haven’t gotten around to using many of the iOS 6 APIs yet, but I’m looking forward to trying them out. Per usual, raywenderlich.com has already posted a bunch of new iOS 6 tutorials like a boss. The new Facebook sharing option is easy and awesome, but be careful when you include the Social framework in your project, make it optional instead of required or your iOS 5 users will have a bad day when they try to use your app. I learned this the hard way, don’t make the same mistake.

I got the iPhone 5. I’ve been having some trouble using data over cellular. When it works, it works like a champ, but a lot of times, I have to reboot the phone to get it to work. This especially seems to happen when I go from wifi to cellular. Other than that, it’s a sweet device and for the first time owning an iPhone, I bought and use a case for it.

That is all. For now.