Category "Episodes"

Episode 25: Submit to App Store

Preshow

Build: iOS 10 SDK Development, Chapter 12

The app is ready to make its debut… now what? In the final video of this series, we look at how to polish your app for submission to the App Store by giving it a proper app icon and launch screen, clean up the build and version numbers. Then we show how to do archive builds, manage them in the organizer, and set up the metadata on Apple’s developer and iTunes Connect websites to upload your build, send it to testers with TestFlight, and finally submit it for approval to go on the store.

Interstitial

Play: jukebeat

Konami’s Dance Dance Revolution games for iOS are lost to the 32-bit-pocalypse, but they still have several installments of their other music game series on the platform. One is jukebeat, a tap-with-the-music game where your fingers need to keep up with a 4×4 grid of buttons to press. It’s a simple concept and doesn’t require special hardware, but fares merely OK in its mobile version. One sticking point: you only get a miserly three songs to start, and song packs are $4 each.

Read: Muv-Luv Alternative, Episode 5, Part 2

Yuuko’s experiments sending Takeru back to his world start to show signs of progress, as Takeru can briefly return to his old body and re-experience scenes from “Muv-Luv Extra”, but as merely a captive observer to these events, the project still has a long way to go. Takeru also gets an opportunity to speed up history by skipping the volcano evacuation misadventure at Mt. Tengen seen in “Muv-Luv Unlimited”… surely this major change to the timeline can only lead to good things, right?

Encore

Notes

  • With the iOS 10 SDK Development material now completed, I’m going to take a couple weeks’ hiatus to plan, organize, and figure out what’s next. Watch the invalidstream.com website or @invalidstream on Twitter for an announcement about when livestreams will resume.

Episode 24: Where’s the Boom?

Preshow

Build: iOS 10 SDK Development, Chapter 11

Our podcast app works, but how do we keep it working? What happens when we screw something up? In this episode, we look at Xcode’s debugging tools, which let us investigate problems while the app is running, either in the simulator or on the device. We can investigate the values of variables, issue commands, preview images, and step through the code one line at a time to figure out what’s going on.

Interstitial

Play: Madden NFL

For decades, the “Madden” franchise has been the dominant name in videogame football, even more so after obtaining a long-term exclusive license with the NFL. On consoles, the game is a deep simulation of real football that lets you play games for fun or run an entire season. On mobile, however, it’s a different story. Here, the game is loaded up with user-engagement gimmicks: daily tasks, multiple currency systems, stamina that runs out and makes you pay to play more… the usual abuses of in-app purchase games. Also, it sometimes lets you play a little football.

Read: Muv-Luv Alternative, Episode 5, Part 1

Takeru wakes on Yuuko’s sofa to find out why he’s there: she can now confirm that in his dreams, his consciousness has been returning to his original world, the timeline of Muv-Luv Extra. With this development, she’s now ready to take the next step: sending Takeru back to his world mentally and physically, albeit temporarily, so he can get the equations from that world’s Yuuko that this one needs in order to complete the 00 Unit and save Alternative IV.

Encore

Episode 23: One Ugly Mug

Preshow

Build: iOS 10 SDK Development, Chapter 10 (part 2)

Last episode, we got our podcast player actually working by using a navigation controller to transition from the episode list scene to the player scene. That uses the default forward-and-back navigation. This episode, we look at other kinds of segues: a modal segue to take us to a scene where we can add a new podcast feed to the list, and an exit segue to back out of it when done.

NOTE: I had a demo fail when recording this live, so the last five minutes are a reshoot. The code is the same, I just needed to scroll to the bottom of the list to find the new episodes. The reshoot also adds a bit about cleaning up images in reusable table view cells.

Interstitial

Play: Fake Cuphead

For a few hours on December 18, 2017, the much-praised game CUPHEAD was available on the iOS App Store. Only, it wasn’t actually CUPHEAD. The app was a fake, using assets stolen from the original PC / XBox One game and ported to a somewhat-convincing mobile version of the original. It’s actually playable, so it’s not a surprise that it got past App Review. The real question is how it was created, and how the creators thought they’d ever get away with it.

  • Fake Cuphead is no longer available on the iOS App Store

Read: Muv-Luv Alternative, Episode 4, Part 4

With the new OS installed on Chizuru and Ayamine’s TSFs, their team breezes to victory in the first mock battle, saving Takeru precious time by avoiding infighting between those two. But now he has a new problem: Mikoto’s dad, a man of many secrets, appears unannounced in Yuuko’s office. And he is clearly up to something.

Encore

Episode 22: Edgy Navigation

Preshow

Build: iOS 10 SDK Development, Chapter 10 (part 1)

Our podcasting app has two scenes — a list of podcast feeds and their episodes, and an MP3 player UI — but no way to connect the two. What we need is a concept of navigation, of going from one scene to the next, and back again. By adding a navigation controller in this episode, that’s exactly what we get: the ability to select an episode and have it transition to the player.

Play: Edge

While many of the earliest iPhone games are now gone from the App Store — victims of App Store economics, the 64-bit transition, or just disinterest — Edge by Mobigames has somehow hung around for nine years. This clever 3D puzzle game uses a distinct minimalist graphic style and bite-size levels to make for one of the best examples of its era. It also has a long and twisted history, having been pulled from sale multiple times under threat from a trademark troll that laid claim to the word “edge” in seemingly any electronic entertainment.

Read: Muv-Luv Alternative, Episode 4, Part 3

The premature arrival of the UN Undersecretary (who’s also Tama’s father) provides another checkpoint for Takeru’s re-run of history, but it looks like he’s changing history more than he expected. He pushes his luck further by trying to get Yuuko to put the new OS on Chizuru and Ayamine’s TSFs, but he comes up against Yuuko’s hidden desperation at the looming Alternative V deadline.

Encore

Episode 21: Shoot the BETA, Then Shoot Mom

Preshow

Build: iOS 10 SDK Development, Chapter 9 (part 2)

We’ve wired up our table view to show the parsed podcast episodes, but a single line of cut-off text for each episode leaves a lot to be desired. In this chapter, we look at how to make out episode list far more appealing with the use of custom table view cells, which we lay out in the storyboard, create a class for, and then “dequeue” from the table.

Interstitial

Play: Vectrex Regeneration

In the early 1980s, some of the most popular arcade games used vector graphics, which differ from conventional CRTs and televisions by drawing shapes directly with the electron gun, rather than illuminating a grid of pixels. The Vectrex system brought some of these games home, as a standalone video game unit with its own built-in vector display. Vectrex Regeneration is an emulator for iOS that presents most of the classic Vectrex library, along with homebrew games coded decades after Vectrex’s brief hardware existence.

  • Vectrex Regeneration on the iOS App Store
  • Cinematronics (makers of Armor Attack, Star Castle, et al) on Wikipedia
  • “Shoot the Robot, Then Shoot Mom” by Timothy Skelly (Cinematronics designer) on Amazon

Read: Muv-Luv Alternative, Episode 4, Part 2

It’s info-dump time on Muv-Luv Alternative! Takeru tells BETA-verse Yuuko all about video games and why she should invest her time into making TSFs control like his beloved Valgern-On game. Then, at the next sign of history repeating itself on the wrong schedule, he rushes in to tell her about the impending HSST incident, which leads to learning a lot about the nature of BETA hives, the Alternative plans, and how far the IV and V supporters would go to secretly get a leg up on one another.

[Yes, I mistakenly said “Muv-Luv Unlimited” at the top of the episode. Hey, I do these things late at night, OK?]

Encore

Episode 20: Five Minutes of Debugging Later…

Preshow

Build: iOS 10 SDK Development, Chapter 9 (part 1)

Using our class to download podcast feeds and parse their XML, we’re now ready to show the feed to the user. In this episode, we look at how to create table views, which list the episodes in a scrollable view for users to choose from. (As a bonus, watch as I put the last step in the wrong part of the code, which led to a five minute debugging session that has been edited out of this video).

Interstitial

Play: Puella Magi Madoka Magica Side Story: Magia Record

Spinning off of the immensely popular anime “Madoka Magica”, the Japan-only “Magia Record” offers a deceptively cute RPG take on the franchise. It alternates between chibi turn-based battles, and more on-model dialogue scenes between feuding magical girls in a neighboring town, one of whom ominously tells time magician Homura that magical girls can be “saved” there.

Read: Muv-Luv Alternative, Episode 4, Part 1

With the CCSE behind them, the cadets are ready to begin their Tactical Surface Fighter training in the simulators. Everything seems to be going great for Takeru, but other things are afoot. He knows to expect to be challenged by Tsukiyomi and the Imperial Guard, but why’s he having dreams of his original world all of a sudden? And how can Kasumi be showing him drawings of a video game she’s never known to exist?

Encore

Episode 19: XML Parse ‘Em

Preshow

Build: iOS 10 SDK Development, Chapter 8 (part 3)

And now for the weird part. We have an XMLParser that can parse the top-level parts of a podcast feed. But to parse the episodes, we have to create a second parser delegate, one that knows about episodes rather than feeds, and repoint the XMLParser to send its events to the other delegate, then pass it back when it reaches the end of each episode. Sounds weird, and it made a lot more sense in Objective-C than in Swift, but it actually works! And with this, we complete our introduction to XML parsing.

Interstitial

Play: Poker Night 2

Telltale’s Poker Night series brings together a witty group of characters from animation, comics, games, and film, to play cards and make crazy jokes about their various fictional universes. In Poker Night 2, we get to play Texas Hold ‘Em with Brock from The Venture Bros, Claptap from Borderlands, Ash from the Evil Dead series, and Sam from the Sam & Max comics. All with GLaDOS from Portal as the sarcastic dealer. Jokes are courtesy Mike Stemmle (“Strong Bad’s Game for Cool Game for Attractive People”, “Tales of Monkey Island”), and they’re funny.

Read: Muv-Luv Alternative, Episode 3, Part 2

The cadets continue their slog through the Comprehensive Combat Skills Evaluation, their make-or-break test to allow them to begin TSF pilot training. Being on his second trip through this timeline, Takeru knows how it’ll end, but he also knows he’s up against a deadline to prevent Alternative V, so he needs to push history along faster than it went last time. How much of his foreknowledge can he afford to use?

Encore

Episode 18: The World Ends With parser.abortParsing()

Preshow

Build: iOS 10 SDK Development, Chapter 8 (part 2)

And now, the hard part: XML Parsing. The XMLParser API provided by the iOS SDK is an event-driven parser, and not particularly pleasant to work with, so we roll up our sleeves and dig in. We make our own parser class implement the XMLParserDelegate class, so it can be called back when the XMLParser starts and ends tags, finds text, and so on. By selectively handling these callbacks, we can parse the feed’s top-level metadata into a Swift struct.

Interstitial

Play: The World Ends With You: Solo Remix

A nice change of pace from the well-trod Final Fantasy series, The World Ends With You is an action-RPG with a distinct, modern aesthetic, set in Tokyo’s busy Shibuya district. Originally created for the Nintendo DS and heavily relying on that system’s dual screens, it was reimagined for mobile as “The World Ends With You -Solo Remix-“. It’s also infamous for having a crash-at-launch bug after an iOS system update that went unfixed for years, and even now has a warning that it’s not compatible with iPhone 7 or the iPad Pro (presumably meaning the 12”).

Read: Muv-Luv Alternative, Episode 3, Part 1

Chapter 2 ends with Takeru proving his foreknowledge of the future by telling Yuuko about the BETA incursion from Sadogoshima. He thinks it’s a chance to save hundreds of lives by preparing for the attack, but she has other ideas. Then, chapter 3 begins with another do-over from the previous timeline: the Comprehensive Combat Skills Evaluation. Takeru knows not to fall for the traps or get bitten by the snake this time; maybe he can speed up history?

Encore

Episode 17: Hockey Night in America

Preshow

Build: iOS 10 SDK Development, Chapter 8 (part 1)

Turning our attention from the player scene to the rest of the podcast app, we look at how we are going to download podcast feeds from the internet. After all, fetching stuff from the internet and putting it in a UI is most of what many apps do. To get started, we’ll use a URLSession to download a podcast feed’s RSS, and log it to the console. This will let us look at what’s in the feed, so we can set up some structs to model podcast feeds and episodes.

Interstitial

Play: Matt Duchene’s Hockey Classic

It’s Hockey Night in Wherever, and we celebrate by checking out the best hockey game for iOS. Granted, given the state of sports games on the platform (or paid apps in general) that is very faint praise, but nevertheless, Matt Duchene’s Hockey Classic plays as a perfectly typical console-style hockey game, albeit from two console generations ago, and without the NHL or NHLPA license.

Read: Muv-Luv Alternative, Episode 2, Part 2

Mikoto is back, and Takeru meets her for the second time, the first being the timeline of Muv-Luv Unlimited (and it’s the third time if we count that Takeru was a boy in Muv-Luv Extra). Her returns helps enliven and lighten the mood of the squad, and distract somewhat from Takeru’s repeated mistake of letting on more than he should about his foreknowledge of future events.

Encore

Episode 16: It’s Different For Skullgirls

Preshow

Build: iOS 10 SDK Development, Chapter 7 (part 2)

Using closures (and a convenient method provided by AVPlayer) lets us update the time display of our podcast player, but all is not well. When it comes to closures, memory management and queueing present subtle issues that will become subtle bugs if we’re not careful. In this episode, we see how weak references keep us from leaking memory, and how we keep our UI work on the one “main” queue where it’s allowed.

Interstitial

Play: Skullgirls

Originally a console release in 2012, Skullgirls came to mobile in 2017, and it may be the least likely fighting game you’ve ever seen. The game has a Roaring 20’s jazz age aesthetic that’s more Ub Iwerks than Akira Toriyama. It has an RPG-like story mode where you level up and buy your moves and abilities. And it ditches the simulated D-pad + 4 button approach in favor of one-hand touch-and-swipe input. Grab your flapper dress and a chainsaw; it’s showtime.

Read: Muv-Luv Alternative, Episode 2, Part 1

Takeru heads out to the shooting range with the rest of the class, where he continues to impress with his military skills accumulated from previously experiencing these events on a different timeline. He’s also becoming keenly aware that he’s pushing his luck with his “special” status. Fortunately, he may be able to take his Awesome McAwesomepants act down a peg when an old friend reappears.

Encore

Notes

  • invalidname will be presenting a session at Swift By Northwest, in Seattle, October 27-28.
  • We now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.