Design Patterns by Tutorials: Explore the usefulness of design patterns, moving from the basic building blocks of patterns into more advanced patterns and completes the lesson with less common but incredibly useful patterns.

Normally, these books sell for $54.99 each (and they’re worth it), but right now, they’re on sale as part of their Advanced Swift Spring Fling, where all 3 books are available as a bundle for $99.99, a 40% discount! This event lasts for just two weeks, so if you want these books at a cheaper price, get them now.

New Android programming books

RayWenderlich.com has long been known as the go-to place for tutorials and books on iOS programming, but over the past year, they’ve expanded to cover Android programming as well (in fact, I’m actually on their Android writing team — here’s the one article I’ve written so far). They’ve published Android programming articles, and now there are two new books:

Android Apprentice: If you have prior programming experience — say, with Swift, Java, Python, or JavaScript — this book will help you get up to speed with Android development in short order. You’ll learn by building 4 complete Android apps from scratch:

Timefighter: You’ll get started with Android development by creating a game with a simple goal: tap a button as fast as you can, within a set time limit.

CheckList: Make a simple TODO app with multiple lists. Along the way, learn about layout managers, activities, saving data, and notifications.

PlaceBook: Keep track of your favorite places with photos and maps. Along the way, learn about Google Play services, Room, Google Maps API, and working with photos.

PodPlay: You’ll round out the book by building a podcast manager with a built-in media player. You’ll cover Android networking, job scheduling, media browser, notifications, and media playback.

People with no prior programming experience, but who want to learn how to program in Kotlin, presumably in the hopes of taking up Android programming.

People who have prior programming experience and are looking to get up-to-speed quickly with Kotlin.

Both books span hundreds of pages — Android Apprentice is 652 pages long, and Kotlin apprentice, which is still in the process of being written, is already 200 pages. Like other RayWenderlich.com books, they sell for $54.99 in PDF form and come with starter and finished code. This may seem expensive, but again, like other RayWenderlich.com books, they’re worth it. Having read a good number of their books, gone through the writing and editing process for an article on the site, and six hours’ worth of presentations and having tech edited one of their upcoming books, I can say that with confidence that they’re worth every penny.

If you’ve even considered doing iOS development, chances are that you’ve heard of RayWenderlich.com (their home page is pictured above). They’re a site with over 1600 programming tutorials to date, a dozen iOS programming books (pictured below)…

…600 video lessons, and a consistently sold-out annual iOS developer tutorial conference. They are the go-to place for new and experienced iOS developers to learn programming languages and techniques for developing apps for the iPhone, iPad, Apple TV, Apple Watch, and even MacOS. When I learned iOS development, I learned it from RayWenderlich.com. It’s a great honor to be invited to join them!

Give the article a look! With a provided “starter” app, it walks you through the process of using Google’s Mobile Vision suite of libraries and its Face API to create Snapchat Filters-like app that draws googly eyes, a pig nose, and a moustache over any face detected by your device’s camera:

If you’ve been reading this blog for a while, you might be surprised that I signed up to join the Android team. After all, here in Tampa, I run this meetup, not the Android one…

…I have an app in the App Store, but nothing in Google Play, and most of my recent mobile development articles are about iOS and Swift, not Android and Java. Plus, while I have an Android Phone — a Moto G4 — my primary phone is an iPhone 6S.

So why would I join the Android team, and on a site where fewer than 30 of its 1600+ tutorials are Android tutorials?

The “smart” move would’ve been to audition for the iOS team. After all, iOS is their stock in trade, whether it’s on their site, books, videos, podcast, and conference, and the vast majority of their audience is there for the iOS content.

The thought of writing Android tutorials is a little discomforting. I have more iOS programming practice than Android practice, but I’m counting on that discomfort to push me to be better. Comfort is nice, but comfortable people stagnate.

There’s also the matter of “the protegé effect” — I wanted to get better at Android programming, and the best way to learn something is to teach it to someone else. Besides, as a seasoned tech evangelist, I’m an old hand at picking up new technologies and then teaching others how to use them.

This is from a couple of years ago — there are probably more people on the team now.

Ray tells me that they’ve got some great plans for Android on RayWenderlich.com. I’m looking forward to helping bring about those plans, and to the challenges that come with them. Follow me here — or on RayWenderlich.com — and see what happens!

In case you were wondering, Global Nerdy will remain an ongoing concern. I’ll still post articles here regularly; it’s just that I’ll also be posting Android programming tutorials on RayWenderlich.com, and getting paid for them too.

I’m Joey deVilla, and I’d like to become a co-maintainer for SwiftAlgorithmClub! I’m a technology evangelist by day, and rock-and-roll accordion-playing mobile developer and bon vivant by night, as well as a long-time reader of RayWenderlich.com. I think I’d be well-suited for the role, and as proof, I have submitted my answers to the questions you posed in the article calling for co-maintainers.

Why do you want to be a co-maintainer on the SwiftAlgorithmClub?

I’ll admit it: a big part of my reason for wanting to be a co-maintainer on the SwiftAlgorithmClub is to be able to say “The first rule of SwiftAlgorithmClub is…to get ’em as close to O(1) as possible.”

But seriously, I’d like to be a co-maintainer of the SwiftAlgorithmClub for the following reasons:

I’ve been doing tech evangelism since 2000 (you can see my LinkedIn profile here), and in my current position as Technology Evangelist for Smartrac (an RFID company pivoting to an RFID-plus-software-platform kind of company), establishing good relations with the developer community is part of the job. I’d even be able to contribute to SwiftAlgorithmClub on company time!

I like helping out developers, which is why I’m in my line of work. Some evidence: My Stack Overflow profile, where my reputation score puts me in the top 6%.

As a tech evangelist, I don’t work directly on code with my company, and they currently don’t do iOS development anyway. Working on SwiftAlgorithmClub would give me a chance to keep learning, exercise my coding skills, and work with a language I love.

I once had to explain to some art students why they couldn’t represent all the possible states of their game using individual QuickTime cells. It was a “Virtual Bubble Wrap” game with 95 bubbles, which meant that it would take 2^95 cells to represent every possible state (for comparison’s sake, the estimated number of photons in the universe is a smaller number: 10^89).The more interesting experience:I am “internet famous” for using P=NP to figure out that I was dating a con artist. The story is on my personal blog under the title What happened to me and the new girl (or: “The girl who cried Webmaster”), and ended up in print in an anthology titled Never Threaten to Eat Your Co-Workers: Best of Blogs.

Please link to any articles/tutorials you have written online.
I’ve been blogging since November 2001, with my personal blog, The Adventures of Accordion Guy in the 21st Century. I started my personal tech blog, Global Nerdy, in August 2006, and since then have written over 3,000 posts which have acquired over 8.6 million pageviews.

I should also mention that while working at Microsoft as the Windows Phone evangelist (the second-hard evangelism job in mobile), I had a short-lived children’s show, complete with puppet co-host. Here’s the first episode:

RayWenderlich.com has long been home to some of the best iOS development tutorials out there. They regularly publish tutorials that you can read online for free (here’s a categorized list), as well as more in-depth ebooks such as The iOS Apprentice, which they sell at very reasonable prices, especially considering the depth to which they cover their topics. If you’re serious about iOS development, and especially if you’re just getting started, you should visit RayWenderlich.com regularly.

As time goes on, they’ll add other topics, such as OpenGL, iCloud, Sprite Kit, networking, GCD (Grand Central Dispatch), Mac programming, in-app purchases, Unity, and even Android. In the intro video, Ray says that even if you’ve been doing iOS development for a while, you should watch these videos, as there’s a good chance that you’ll learn something new, and even if you don’t, it’s always good to brush up on the material, as there’s just so much.

In order to give people a taste of what these videos — which are currently “in beta” — are like, they’ve made these four viewable for free:

In keeping with RayWenderlich.com’s tradition of providing good tutorials at a decent price, you’ll eventually need to sign up for a video tutorial subscription for $19/month. As a reward for early birds, you can lock in a rate right now for $15/month. Having read much of the site and purchased The iOS Apprentice and iOS by Tutorials, I believe that the tutorials will give you, the iOS developer, a lot of bang for the buck.

RayWenderlich.com, one of my go-to sites for iOS development, recently published a series of articles on resumes and job interviews. While they’re writing primarily for iOS developers, most of the advice they give applies to developers of all stripes. Check ’em out:

Whether you’re new to iOS programming or a long-timer, RayWenderlich.com is a valuable resource for the iOS developer. They regularly publish tutorials, tips, tricks and other goodies that you’d be crazy to do without if you’re serious about writing apps for iDevices. In addition to articles on the site, they go deeper with their books, which are excellent.

RayWenderlich.com recently published an article titled AFNetworking Crash Course, which covers how to write networking apps using AFNetworking, a library created by the folks at Gowalla that simplifies iOS network programming. In this tutorial, you build a weather app that uses AFNetworking to get its data from the World Weather Online service. Check it out; AFNetworking’s useful, and the tutorial’s pretty nice.

In order to reach the widest possible audience, the tutorial was written for iOS 5 and earlier versions of Xcode. If you’re developing with the current version of Xcode and for iOS 6 (which accounted for 83% of all iOS traffic in North America in February), you might want to make a few changes to the code in the tutorial. I’ve listed the changes below:

Use Modern Array Notation

Here’s the old way to get at the element of an array whose index is theIndex in Objective-C:

Use Modern Dictionary Notation

Here’s the old way to get at the item in a dictionary whose key is theKey:

Swift

1

item=[theDictionary objectForKey:theKey];

Again: it’s clunky. Also again, in my earlier article, I showed the modern way to access dictionary items:

Swift

1

item=theDictionary[theKey];

Setting items for a dictionary used to be like this:

Swift

1

[theDictionary setObject:theObject forKey:theKey];

Now, it’s like this:

Swift

1

theDictionary[theKey]=theObject;

So, in the places where you see code like:

Swift

1

*array=[self.xmlWeatherobjectForKey:@&quot;weather&quot;;];

change it to:

Swift

1

*array=xmlWeather[@&quot;weather&quot;];

…and where you see code like:

Swift

1

[self.xmlWeathersetObject:arrayforKey:@&quot;weather&quot;];

change it to:

Swift

1

self.xmlWeather[@&quot;weather&quot;]=array;

Update the Deprecated Location Manager Delegate Method

If you use the code as-is with iOS 6, you’ll get an error message that looks like this:

Deprecated in iOS 6.0locationManager:didUpdateToLocation:fromLocation:
Tells the delegate that a new location value is available. (Deprecated in iOS 6.0. Use locationManager:didUpdateLocations: instead.)

Instead of using the deprecated locationManager:didUpdateToLocation:fromLocation: method, use the current locationManager:didUpdateLocations: method instead:

Over 500 MB of complete sample project code for all tutorial sessions and workshops

Over 500 pages of conference instructional workbooks in PDF format

If you didn’t attend RWDevCon 2018 but still want the bundle, you can buy it. Better yet, for a limited time, you can buy it for half price — $99.99 instead of $199.99! (And in case you were wondering, I don’t make any money from sales of the Vault.)