Chuck dives into the 3 essentials for getting the next successful outcome you want in your career. Whether that's something simple like a raise or something more complex like going freelance, you can achieve it by working on 3 main areas.
First, building skills. The most obvious type of skills you'll need is technical skills. However, don't neglect your people skills and your organizational skills as well since you're often paid for how you work with people and enhance their work and how you put your work together in the most efficient ways.
Second, building relationships. Often other people will be able to help you find the opportunities or will be the ones to make the decisions that impact your ability to get the outcome you want. Having good relationships is key to having good outcomes.
Third, building recognition. Being known for being valuable in important ways allows you to leverage the skills you have to build better relationships and create opportunities to get what you need to get the outcomes you want by giving people what they want. A podcast is a great way to do all three. Chuck explains exactly how that works in this podcast and goes deeper as part of the Dev Influencers Accelerator.
Panel * Charles Max Wood
Chuck explains what he taught Nathan last week when we asked how to get hired at a FANG (Facebook Apple/Amazon Netflix Google) company. Essentially, it boils down to how to build the skills and knowledge needed to pass the interview. How to build the relationships to get into the door and have the interviewer want you to succeed. And how to build the reputation that has the company wanting you regardless of the outcome.
This approach also works for speaking at conferences, selling courses, and other outcomes as well as it's the core of building a successful career as an influencer.
Panel
Chuck was on a strategic call with one of his potential coaching clients talking about cryptocurrencies and realized that this is one of the major reasons that people want to become influencers. Or, rather, that many people aspire to make a difference and/or make money and the best way to do that is to become the person people go to for what you do.
So, how do you become the first person people think of when they think of that thing you know how to do? Let Chuck tell you.
Panel
Charles talks about the things that get developers stuck when they're trying to start their podcast or other influencer channel. He explains how to get around having those things hamper your journey.
Panel
Charles Max Wood talks about how to build, grow, and benefit from positive relationships within programming. He talks about how he's built genuine positive relationships with hundreds of programmers and how he and others have grown from those relationships. He also explains that you get out of relationships what you put into them. Finally, he goes into how to begin to build relationships by building a system of influence you can use on behalf of the people you want relationships with.
Panel
Charles Max Wood discusses several opportunities that came his way early in his podcasting career and other opportunities that have come to other people after only a couple of podcast episodes. He explains why that happens and how you can use this to create more influence as a developer.
Panel
Charles Max Wood started podcasting because it sounded fun and because he wanted to talk about technology. He learned pretty quickly that it got him access to people who understood the things he wanted to learn. The reasons changed over the years, as Charles explains before he talks about the big payoff he gets now from doing the podcasts.
Panel
Jason Weimann started out as an enthusiast of the Massively Multiplayer Online Role Playing Game, Everquest. After becoming a software developer and building a collaborative community playing the game, learn how he used his connections to get a job working for the company that made the game, even if it wasn't a job working as a game developer and how that led to a career working on one of the most popular online games of the time.
Panel
Chuck outlines how he's used his podcasts to find mentors to continue his learning journey over 12 years of podcasting. Some mentors have been long lived relationships while others have lasted only a few months or even days. This episode shares Chuck's experience learning from the top people in the development community as a programmer and podcaster.
Panel
John-Daniel Trask, founder and CEO of Raygun, talks about his experience building a monitoring company and about how to measure the speed and quality of your code.
John-Daniel Trask, founder and CEO of Raygun, talks about his experience building a monitoring company and about how to measure the speed and quality of your code.
Get the 2020 Goal Setting Workshop + Success Accelerator Deal HERE (Coupon Code: GOALS for a massive discount)
Mani Vaya joins Charles Max Wood to walk him through the 6 pillars of success that lead to meeting your goals.
Mani has read thousands of books on success, setting and achieving goals, and personal growth and has distilled these 6 principles from the books and then figured out how to put them into practice.
He and Chuck walk through the principles and strategies that create success and allow you to set goals that will bring you the things you want during the next year or so.
Listen to this episode to learn how to crush your biggest goals in 2021.
Get the 2020 Goal Setting Workshop + Success Accelerator Deal HERE (Coupon Code: GOALS for a massive discount)
Get the 2020 Goal Setting Workshop + Success Accelerator Deal HERE (Coupon Code: GOALS for a massive discount)
Mani Vaya joins Charles Max Wood to walk him through the 6 pillars of success that lead to meeting your goals.
Mani has read thousands of books on success, setting and achieving goals, and personal growth and has distilled these 6 principles from the books and then figured out how to put them into practice.
He and Chuck walk through the principles and strategies that create success and allow you to set goals that will bring you the things you want during the next year or so.
Listen to this episode to learn how to crush your biggest goals in 2021.
Get the 2020 Goal Setting Workshop + Success Accelerator Deal HERE (Coupon Code: GOALS for a massive discount)
Get the Black Friday/Cyber Monday "Double Your Productivity by 5pm Today" Deal Coupon Code: "DEEP" for a GIANT discount Mani provides us with strategies and tactics to get Deep Work time and how to get our minds into that focused state for hours at a time.
He has read hundreds of books that have taught him the secrets to getting more done by getting into this state.
He starts by telling us how he was passed over for a promotion at Qualcomm in favor of someone younger and less experienced and how that inspired him to figure out what the other guy was doing differently. He learned that he needed to get more done with the time he was spending on his projects.
The trick? Deep Work!
Deep Work is the ability to spend uninterrupted, focused time on a task to bend your entire mind toward the goal.
Other developers call it "Flow" or "the Zone."
Mani provides us with strategies and tactics to get Deep Work time and how to get our minds into that focused state for hours at a time.
Get the Black Friday/Cyber Monday "Double Your Productivity by 5pm Today" Deal Coupon Code: "DEEP" for a GIANT discount
In this episode of the iPhreaks Show, Steve and Alex chat with Rew Islam who manages the Apple and Android engineers at Dashlane. He shares how tech debt affects developer recruitment, how collaborating with their competitors led to new features, and how Dashlane is maximizing Testflight for product improvements.
Sponsors * Audible.com * CacheFly
Panel * Steve Young * Alex Lundquist
Guest * Rew Islam
Picks Steve Young::
Rew Islam:
Follow iPhreaks Show on Twitter > @iphreaks
In this episode of the iPhreaks Show, Azam and Chuck sit down and talk about the Reactive programming patterns and MVVM that go into building applications using SwiftUI in ways that allow the applications to be responsive, easy to test, and to grow. The discussion ranges through RxSwift and Combine to MVVM patterns that SwiftUI leads to and some of the pitfalls that you might run into using them.
Sponsors * Audible.com * CacheFly
Panel * Charles Max Wood
Guest * Mohammad Azam
Links * https://github.com/ReactiveX/RxSwift * https://developer.apple.com/documentation/combine * https://azamsharp.com/viewmodel-patternshttps://github.com/ReSwift/ReSwift
Picks Charles Max Wood:
Mohammad Azam:
Follow iPhreaks Show on Twitter > @iphreaks
In this episode of the iPhreaks Show, Alex Bush talks to Tom Hammond about game app monetization and live ops in mobile gaming. They cover different ways to monetize your game and complexities of showing popups, surveys, and other live in-game events to players.
Sponsors * Audible.com * CacheFly
Panel * Alex Bush
Guest * Tom Hammond
Links * Podcast – The Monetization Minute * Roast my app – free advice for apps * https://www.linkedin.com/in/tom-hammond/ * https://www.theoremreach.com/
Picks Alex Bush:
Tom Hammond:
Follow iPhreaks Show on Twitter > @iphreaks
In this episode of the iPhreaks Show, Alex talks to Curtis Herbert about challenges building your own indie iOS app. They talk about technical decisions, business priorities, and benefits and disadvantages of sticking with Apple technologies.
Sponsors * Audible.com * CacheFly
Panel * Alex Bush
Guest * Curtis Herbert
Links * https://simgenie.app * https://getslopes.com * blog.curtisherbert.com/tag/slopes-diaries * https://independence.fm * https://curtisherbert.com * https://simgenie.app
Picks Alex Bush:
Curtis Herbert:
Follow iPhreaks Show on Twitter > @iphreaks
In this episode of the iPhreaks Show, the panel discusses iOS and other development books that are great resources to help during the course of the iOS developers’ journey.
Sponsor * CacheFly
Panel * Alex Bush * Charles Wood
Links * iOS Programming: The Big Nerd Ranch Guide * Cocoa Design Patterns * Pragmatic Programmer * Soft Skills * Complete Software Developer’s Career Guide * MaxCoder’s Guid to Finding Your Dream Developer Job * Refactoring * Working Effectively with Legacy Code * Clean Code * Design Patterns * Clean Architecture * Structure and Interpretation of Computer Programs * Growing Object Oriented Programming, Guided by Tests * Reactive Programming with RxJS * Practical Object-Oriented Design Using Ruby * Test Driven Development by Example * SmallTalk Best Practice Patterns * Extreme Programming Explained
Picks Alex Bush:
Charles Wood:
Follow iPhreaks Show on Twitter > @iphreaks
In this episode of the iPhreaks Show, Charles talks to Alex Bush about iOS interview questions and how to navigate the challenging job market. They go over an article Alex wrote that systematizes and summarizes commonly asked iOS interview questions.
Sponsor * CacheFly
Panel * Alex Bush * Charles Max Wood
Links * iOS Interview Questions for Senior Developers in 2020 * https://github.com/Alamofire/Alamofire * Architecting iOS Apps with VIPER By Jeff Gilbert and Conrad Stoll * https://github.com/uber/RIBs * The Clean Architecture by Robert C. Martin (Uncle Bob) * Clean Architecture book
Picks Alex Bush:
Follow iPhreaks Show on Twitter > @iphreaks
Testing your iOS apps can be tricky. It's even trickier when you need to make sure that your non-technical folks to verify that your applications behave as they should. Azam shares his expertise in testing your applications using Behavior Driven Development techniques and how to write specifications in plain English that can be read and understood by non-technical people and can be executed by computers to verify that the behavior matches up.
Panelists * Alex Bush
Guest * Mohammad Azam
Sponsors * CacheFly
Picks Alex Bush:
Mohammad Azam:
Follow iPhreaks on Twitter: @iphreaks
iOS Dev Remote Conf 2020
Donny Wals works for Disney on the systems that run Disney+ and other systems. He jumps on the podcast to talk about Combine. Combine is a functional reactive programming library provided by Apple. It's similar to RxSwift. It's functionality focused instead of UI focused. He can be used to handle API responses and things like that to push changes through the system.
Panelists * Charles Max Wood * Soojin Ro
Guest * Donny Wals
Sponsors * CacheFly
Picks Soojin Ro:
Donny Wals:
Follow iPhreaks on Twitter: @iphreaks
iOS Dev Remote Conf 2020
Steve Young is an ASO and App Promotion expert. He walks Chuck and Soojin through the process of finding applications that will make you millions of dollars by competing in spaces where others are making millions of dollars. He also shows the panelists how to make your apps appear higher in the app store.
Panelists * Charles Max Wood * Soojin Ro
Guest * Steve Young
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
Links * App Annie * SensorTower
Picks Charles Max Wood:
Soojin Ro:
Steve Young:
Follow iPhreaks on Twitter: @iphreaks
iOS Dev Remote Conf 2020
Guest, Alex Lundquist joins this episode of the iPhreaks Show to walk us through his experience with iOS bootcamp. He went into how he was laid off from his job and the rigorous pursuit of landing another job in his field of IT. This episode is truly inspirational especially in a time when so many developers, IT techs etc are at a crossroads in their career.
Panelists * Charles Max Wood
Guest * Alex Lundquist
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
Links * DevMountain * bluehost * Bottega * Lambda * LinkedIn Alex Lundquist
Picks Charles Max Wood:
Alex Lundquist:
Follow iPhreaks on Twitter: @iphreaks
iOS Dev Remote Conf 2020
Soojin and Alex are joined by Luis Ascorbe who talks about his experience splitting a large monolith codebase into modules. They talk about general approach and specific tactics.
Panelists * Soojin Ro * Alex Bush
Guest * Luis Ascorbe
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
Links * cocoaconferences.com
Picks Soojin Ro:
Alex Bush:
Luis Ascorbe:
Follow iPhreaks on Twitter: @iphreaks
iOS Dev Remote Conf 2020
Douglas Hill and Charles Max Wood discuss keyboard control with UIKit apps. Mac Catalyst came out and made keyboard relevant on Mac where UIKit was mostly focused on iOS before. The discussion goes into the ins and outs of Mac Catalyst, the new iPad with its keyboard, and then how to think about keyboard inputs if you're used to working on touch screen devices.
Panelists * Charles Max Wood
Guest * Douglas Hill
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
Links * GitHub douglashill/KeyboardKit * Twitter Douglas Hill: @qdoug
Picks Charles Max Wood:
Douglas Hill:
Follow iPhreaks on Twitter: @iphreaks
iOS Dev Remote Conf 2020 Alex Bush is joined by Marc Aupont who talks about running Swift on Raspberry PI. They talk about how conceptually development for Raspberry PI happens and how specifically it’s implemented with Swift. They also talk about the setup and how to get started developing for Raspberry PI using Swift.
Panelists * Alex Bush
Guest * Marc Aupont
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Links * GitHub uraimo/SwiftyGPIO * Lickability
Picks Marc Aupont:
Alex Bush:
Follow iPhreaks on Twitter: @iphreaks
iOS Dev Remote Conf 2020 Given the current state of the world, we've been put into a position where things have lost jobs or lost in other areas of life. The panel discusses how to make the most of things when hard things come your way.
Panelists * Soojin Ro * Alex Bush * Charles Max Wood
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Links * Course Creator Pro * How To Write & Launch Your Book To $10,000 in 90 Days * The MaxCoders Guide To Finding Your Dream Developer Job * Authority * Corona Dev Jobs * Remote: Office Not Required * Hackernoon
Picks Soojin Ro:
Alex Bush:
Charles Max Wood:
Follow iPhreaks on Twitter: @iphreaks
Esteban Torres is an iOS developer at SoundCloud. He walks the iPhreaks through the process of upgrading the performance of their iOS app. Their app started out taking 2 hours to launch when they were testing. They started out fixing their tracking and then worked on one improvement at a time.
Panelists * Alex Bush * Charles Max Wood
Guest * Esteban Torres
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Links * This is Esteban Torres * Pedal to the Metal - iOS Conf SG 2019 * Esteban Torres Twitter: @esttorhe * GitHub Esteban Torres
Picks Alex Bush:
Charles Max Wood:
Esteban Torres:
Follow iPhreaks on Twitter: @iphreaks
In this episode of the iPhreaks Show, Charles Max Wood approaches Alex Bush to get questions answered about some of the applications he wants to build for mobile devices. The apps range from things for podcasters to other hobbies Chuck has.
Panelists * Alex Bush * Charles Max Wood
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Picks Alex Bush:
Charles Max Wood:
Eric Crichlow joined the iPhreaks to talk about the journey of building a gifting app he build and the process of maintaining the application. He also talks about how he learns through personal projects and how he's worked the evolve an app from desktop to iOS.
Panelists * Alex Bush * Charles Max Wood
Guest * Eric Crichlow
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Links * Bring Your iPad App to Mac
Picks Alex Bush:
Charles Max Wood:
Eric Crichlow:
Jacob Eiting, CEO and co-founder of RevenueCat joins Soojin and Chuck to talk about the ins and outs of running subscriptions through the Apple App Store. He shares advice on getting started, challenges with StoreKit, and ends with a couple of concise points on what to make sure you do when you run a subscription.
Panelists * Soojin Ro * Charles Max Wood
Guest * Jacob Eiting
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Picks Jacob Eiting:
Soojin Ro:
Charles Max Wood:
Tamar Nachmany joins the iPhreaks to discuss building applications that serve specific communities in allowing them to communicate and connect. She discusses the approaches used at Tumblr and other companies and how to learn enough about your community to build the correct interface.
Panelists * Alex Bush * Charles Max Wood
Guest * Tamar Nachmany
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Picks Alex Bush:
Charles Max Wood:
Tamar Nachmany:
JavaScript Remote Conf 2020 May 13th to 15th - register now! Dave Verwer is the curator of iOS Dev Weekly. He also runs several other projects around the iOS community including the iOS Dev Directory. The show starts out talking about how Dave find the links he adds to the newsletter. He actually came to talk about building discoverable apps, meaning making your applications easy to navigate and feel more natural on iOS devices. We also discuss accessibility and the built in features that Apple provides in iOS.
Panelists * Charles Max Wood
Guest * Dave Verwer
Sponsors * With HeadSpin, you only need one platform for testing, monitoring, and analytics across applications, devices, and networks. Check them out at headspin.io * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Links * iOS Dev Directory
Picks Dave Verwer:
Charles Max Wood:
JavaScript Remote Conf 2020 May 13th to 15th - register now! Former Apple iOS engineer Jeff Watkins joins the iPhreaks to discuss accessibility and the capabilities Apple provides to support Dynamic Type and VoiceOver. He also talks about other forms of considerate apps and the things that you should be doing to build, test, and use apps to see how others will experience them.
Panelists * Alex Bush * Charles Max Wood * Soojin Ro
Guest * Jeff Watkins
Sponsors * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Links * Building a considerate app - iOS Conf SG 2020 * Human Interface Guidelines * Victory for disability advocates
Picks Alex Bush:
Soojin Ro:
Charles Max Wood:
Jeff Watkins:
JavaScript Remote Conf 2020 May 13th to 15th - register now! Andrey is an iOS developer. He worked on Cocos2D and has worked on other gaming systems and has not worked much on UIKit. He walks through building games and gaming engines for iOS.
Panelists * Alex Bush * Charles Max Wood
Guest * Andrey Volodin
Sponsors * Sentry * CacheFly
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
Links * Cocos2d * Explain me Metal like I'm 5 - iOS Conf SG2020 * Accelerate * GitHub s1ddok/Alloy * Clean Code
Picks Alex Bush:
Charles Max Wood:
Andrey Volodin:
JavaScript Remote Conf 2020 May 14th to 15th - register now! Soojin Ro gave a talk and demo of an Augmented Reality application he built at try!Swift NYC Conference.. He walks Chuck and Alex through how to build and design Augmented Reality applications and how you need to think about translating details from your camera to targets on your screen.
Panelists * Alex Bush * Charles Max Wood
Guest * Soojin Ro
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
_____________________________
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
____________________________________________________________ Links * try! Swift NYC 2019 - Deeper into ARKit with CoreML and Turi Create * Web Toon * TensorFlow * ARKit * Core ML * PyTorch * GitHub apple/turicreate * Create ML * CVPixelBuffer
Picks Charles Max Wood:
Alex Bush:
Soojin Ro:
Jordan Morgan is a mobile developer at Buffer. He gave a talk at Swift Tokyo. He goes into the issues around images and TableView. He went to WWDC and got a rundown of how images work under the hood on iOS. This episode is a conversation with Alex Bush about how images work on iOS and how to work around the issues that arise from your assumptions about how images are displayed, decoded, and managed on iOS.
Panelists * Alex Bush
Guest * Jordan Morgan
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
_____________________________
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
____________________________________________________________ Links * Optimizing Images * try! Swift NYC 2019-The Life of an Image on iOS * GitHubDreamingInBinary * Swiftjective-C
Picks Alex Bush:
Jordan Morgan:
Former Apple iOS engineer Jeff Bergier joins the iPhreaks to discuss accessibility and the capabilities Apple provides to support Dynamic Type and VoiceOver. He also talks about other forms of considerate apps and the things that you should be doing to build, test, and use apps to see how others will experience them.
Panelists * Charles Max Wood * Alex Bush
Guest * Jeff Bergier
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
_____________________________
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
____________________________________________________________ Links * Codineer - Setup -#100daysofvue * Codineer Playlist
Picks Charles Max Wood:
Alex Bush:
Jeff Bergier:
Charles Max Wood hosts a solo episode sharing his perspective on designing your perfect life. In this episode he addresses finding your dream job, building your dream life, and staying current. Start by deciding where you want to end up. Do you see yourself retiring? Working forever? Charles shares his vision for his future and discusses the retirements of others in his life. Working back from the end of your life, Charles has you ask yourself what kind of life and career you want. Charles shares his vision for both his personal life and his career. After you pick your goal, build the skills, and knowledge to reach that goal. He uses the example of becoming a speaker at conferences. He also recommends you find a mentor or someone who has what you want and get their help. Charles explains how important it is to get out of your own way mentally. Many people find reasons real or imagined as to why they can’t reach their goal. He agrees that the world is unfair and barriers can be real. The best way to show others they can overcome barriers is by doing it yourself and working towards your goals. You can if you believe you can and you work for it.
Panelists * Charles Max Wood
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
_____________________________
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood is now available on Amazon. Get Your Copy Today!
____________________________________________________________ Links * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Charles Max Wood:
Magician: Apprentice
Magician: Master
The Man in the High Castle
In this episode of the iPhreaks Show the panel interviews, Mischa Hildebrand, asking about a talk he gave at iOS Conf 2019. Mischa has a very varied background, he studied to become a physicist, then did some journalism on television and radio before finally going into iOS development. His background in journalism gave a unique perspective into writing code that is beautiful and easy to understand. Mischa shares principles from his days in journalism and applies them to programming.
The panel shares their experiences working on legacy or unclear code, the describe the pain it was to interpret the code. Mischa’s principles while nothing new address the problems that turn into painful code. First, use short sentences, in other words, keep your lines short. Also, use simple language. The panel discusses what it means to use an active voice versus a passive voice. Another rule is to give one piece of information per sentence, this allows other developers to easily follow the code and its purpose.
Panelists * Alex Bush
Guest * Mischa Hildebrand
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
Links * Law of Demeter * The Art of Designing Code - iOS Conf SG 2019 * https://miro.medium.com/max/2810/1*EJr5q4QqkY3hshPLEgJVQQ.png * Code is a Language! * https://medium.com/@PhiJay * http://mischa-hildebrand.de/en/ * https://twitter.com/derhildebrand?lang=en * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Christina Moulton:
Mischa Hildebrand:
Alex Bush:
In this episode of the iPhreaks Show the panel introduces themselves and discusses their favorite tools and what their builds look like. They share their journeys in iOS development and their experiences in large teams compared to smaller teams. They consider how iOS has changed since they first started iOS development.
The panel discusses what CI/CD’s they are using. They discuss, Xcode, VScode and the Dash app. They move on to testing, explaining that they generally use what apple provides unless they need something that digs a little deeper. They discuss Fastlane as a deployment tool. Tools they use for crash reports include Sentry, Xcode, and Crashlytics.
For debugging the panel discusses Reveal, Sourcetree, SwiftLint, Charles proxy, and Pony debugger. Charles wonders what they prefer for their backend. Alex Bush explains that it depends on the size of the company. Larger companies prefer custom-built backends. They consider Ruby on Rails, Realm, and Runscope for smaller companies.
Panelists * Alex Bush * Charles Max Wood
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
Links * https://revealapp.com/ * https://kapeli.com/dash * https://www.sourcetreeapp.com/ * https://www.sharemouse.com/ * https://www.charlesproxy.com/ * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Christina Moulton:
Charles Max Wood:
In this episode of the iPhreaks Show the panel interviews Christina Moulton. She starts by sharing her story and how she got into iOS development. The panel briefly discusses her work at Square and what she does there. The panel asks her about her talk at try!Swift about Siri Shortcuts.
The panel asks Christina what terminology to use when discussing Siri shortcuts, she explains that the terminology is so confusing. Shortcuts are simple from the app’s perspective but Christina shows the panel just how complicated they are from the systems perspective. She defines intents for the panel and explains how filing intents are what creates these shortcuts.
These shortcuts can do so much and the panel considers the uses of these shortcuts in home automation. Just by entering or leaving your home you trigger a series of shortcuts that powered down your house and lock up or turn on the lights and texts your family. They also consider how the system predictions the needs of the user.
The panel discusses the visual and voice output and the quality of each on different devices. They wonder at the regulations and testing apple puts towards these intents and shortcuts. Christina explains how she tests intents and shortcuts to make sure that they create a working Siri flow. The panel compares other SDKs and Siri. Christina finishes the episode by sharing a bit about her book.
Panelists * Alex Bush * Charles Max Wood
Guest * Christina Moulton
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
Links * https://grokswift.com/ * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Christina Moulton:
Alex Bush:
Charles Max Wood:
In this episode of the iPhreaks Show the panel interviews Gopal Sharma who gave a talk at try! Swift 2018 about serverside Swift. He starts by sharing his background and how got into building stuff for the serverside. In his talk, Gopal outlined what is expected in a serverside framework and explains where Swift was at.
The major things looked for in a serverside framework are performance and predictability. Swift has the basic building blocks of a serverside framework and Gopal shares what makes Swift unique. Its been over a year since his talk and Gopal tells the panel that things have improved for serverside Swift since then.
Gopal explains that the real reason to use serverside Swift is for Neo. Vapor and Kitura are the Swift frameworks built on top of Neo. Gopal compares these too frameworks and walks the panel through the specifics of each one. They discuss how each handles requests, databases, migration, template-based rendering, and microservice environments.
The panel discusses which frameworks should be used for different projects. They share their preferences for ORMs and weigh the costs and benefits of using ORMs. Gopal explains why he prefers to just use SQL and avoid ORMs. Shawn shares tips for using ORMs and explains how they save him time and make him more efficient.
Panelists * Alex Bush * Shawn Clabough
Guest * Gopal Sharma
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
Links * Swift on Server: Are We There Yet * https://vapor.codes/ * https://www.kitura.io/ * https://twitter.com/gopalkri * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Gopal Sharma:
Alex Bush:
Shawn Clabough:
In this episode of the iPhreaks Show Charles Max Wood interviews Steve Young, founder of Appmasters.com.Steve shares was for apps to rise in rankings on the app stores. He shares specifics for both the Google and Apple app stores. The top thing people can do it to make sure they use keywords in titles, subtitles, and descriptions. He also explains the spanish-mexico localization.
After explaining how he got into marketing, Steve shares more clever tips for getting your app to the top of the list. Continuing with keywords, he warns against cramming keywords because both Apple and Google will punish you for it. The key is finding the balance between keywords and readability.
Figuring out what keywords to use takes a lot of work. Steve shares some services and resources that will do it for you. Other clever things you can do to find keywords include using common misspellings of keywords, not using spaces and using multiword keywords. They also discuss how ratings, categories, and screenshots improve rankings. Steve shares the best ways to get featured.
Panelists * Charles Max Wood
Guest * Steve Young
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * CacheFly
Links * App Masters Academy * https://appfollow.io/ * https://sensortower.com/ * https://www.mobileaction.co/ * https://www.apptweak.com/ * Requesting App Store Reviews * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Steve Young:
Charles Max Wood:
In this episode of The iPhreaks Show the panel interviews well-known author Paul Hudson. Paul is the creator and editor of Hacking with Swift. He does talks all around the world and writes books about swift. Paul went to the recent WWDC and even managed to write a book while at the conference.
The panel asks him about the conference. Paul explains that he didn’t go to many talks, instead, he uses that time to prepare for the labs. Curious the panel wonders at this strategy for conference attendance. Paul expounds, explaining there are only about 10 minutes of good stuff in a 40-minute talk once you get past the intros, jokes, stories and other filler. He can watch those online. His time is better spent playing with Swift and preparing questions for the labs.
As for writing a book during the conference, he explains that the body can do amazing things when fueled by caffeine. He also made sure he was in the Marriot where the conference was held, that way he could walk downstairs and know that his swift code was correct. This saved him a ton of time worrying and second-guessing his code.
The panel considers how SwiftUI has progressed. Paul explains how in the early days it was really hard to tell which features worked as designed. The beta used in the presentations at WWDC is not the beta given to developers, by the time developers get beta 1, Apple is already working on beta 3. He emphasizes the importance of filing your radars early because everything is changing so quickly. Paul goes onto explain that SwiftUI is learning from the mistakes of Swift. Swift had everything but none of it was great. SwiftUI is missing things but what it does have is great.
Paul has a new program for learning Swift called 100 Days of Swift. For each of the 100 days, Pauls supplies an encouraging and educational article along with a kit. The kit includes chapters to read, videos to watch, tutorials, projects, assessments, and challenges. Paul put a lot of work into creating hours of free content. After SwiftUI was out for a few months he decided to do 100 Days of SwiftUI. His goal with these programs is that by doing these each day for less than an hour, you will graduate by Dec 31st, just in time for the New Year.
The panel considers the wonderful things about this program and asks Paul about the feedback he has received from it. This program builds and leads to a goal. People are so proud of what they are accomplishing they can share it on social media. Paul works hard every day to make sure everyone feels welcome on his site and in his programs. Every day he finds people on twitter using the 100 Days of Swift hashtag and encourages them with positive feedback.
Next, the panel discusses the dark corners of iOS 13 where all the new features that people are missing are. Paul explains that there are so many amazing new features in iOS 13 that have been drowned out by SwiftUI. These features include Cryptokit, Imagekit, SF Symbols, Core Haptics, improved core images, quality of life improvements, date-time formatter and many more. He explains a few of the features that he is really excited for and encourages listeners to check out all the features.
Paul wonders if it is Apple’s plan to get as many developers to adopt iOS 13 with all these exciting new features. The panel considers how the poor documentation problem will hold developers back from adopting iOS 13. With poor documentation and only WWDC presentations to go off of many developers have to go looking to outside sources to learn how to use these tools.
Considering how the documentation has gone down for years and the fact that Apple is so wealthy, Paul concludes that Apple has to have a greater plan for documentation in works. He predicts that it will be something more interactive to fit the learning trends of the day, bring people to iOS. The panel considers how iOS is becoming less programmerly and how this too may bring more people to iOS.
Paul goes on a small rant about the chasm between iOS and Mac development. He explains how he is continually nagging whoever he can to see this fixed. Paul believes that the best way to align these to platforms is to bring Swift Playground to Mac.
The episode ends with Paul explaining his app, Unwrap. Unwrap teaches Swift, it is opensource and free. With it, you learn Swift by earning badges, completing challenges and taking assessments. The panel loves that is open source and fun. Paul explains that this app and his 100 Days of Swift program are not just for beginners, programmers of all levels have told him how much they have learned from these resources.
Panelists * Abbey Jackson * Evan Stone * Jaim Zuber
Guest * Paul Hudson
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * My Ruby Story * My JavaScript Story * CacheFly
________________________________________________________________________________________________________________________
"The MaxCoders Guide to Finding Your Dream Developer Job" by Charles Max Wood will be out on November 20th on Amazon. Get your copy on that date only for $1.
________________________________________________________________________________________________________________________
Links * iPS 243: Paul Hudson - Writing, Swift, & Writing Swift * https://developer.apple.com/wwdc19/ * https://www.hackingwithswift.com/100 * https://www.hackingwithswift.com/quick-start/swiftui * https://www.hackingwithswift.com/100/swiftui * https://twitter.com/hashtag/100DaysOfSwiftUI?src=hash * https://www.hackingwithswift.com/unwrap * https://twitter.com/twostraws * https://www.facebook.com/ReactNativeRadio/ * https://twitter.com/R_N_Radio
Picks Abbey Jackson:
Evan Stone:
Paul Hudson:
In this episode of The iPhreaks Show the panel interviews David House about Continous Integration and Continuous Delivery. David is an iOS developer currently living in Georgia. He has been working in iOS development since the iOS SDK was int beta. Right now he is working for a health care company, Kaiser Permanente.
David starts by sharing how he became interested in this topic. Kaiser Permanente is a large enterprise and has large enterprise applications. Their iOS app has almost a million users along with employees who use the app as well. This led him to find a way to scale an app for a large app while also maintain quality and security.
The panel asks David to breakdown the terms Continuous Integration and Continuous Delivery. David explains that neither of these terms was meant for mobile so they now have a different meaning. Originally, Continuous Integration meant you were integrating developer changes in an automated fashion. Continuous Delivery meant you were shipping out code in an automated fashion. Now CI/CD just means you can automate things and run them continuous through your workflow, not just integration and delivery.
The panel wonders how automated systems have effected that end of the workday ritual of checking your daily build. David explains how automated pull request has made this ritual obsolete. He explains the shift left approach which is the idea is to shorten the time frame between submitting your build and receiving feedback. With the rise of the pull request, this timeframe has been significantly reduced, essentially giving you continuous feedback.
Pull requests can be a pain at first but David explains how getting into a habit of using them can say developers a lot of pain and worry.
David shares a life hack that also translates well to programming. The more you regulate the boring and the tedious the more room in your brain you have for interesting and new ideas. He equates this to automation. By automating the parts of your job that are tedious and painful, you free up time and brain space for the more interesting parts of your job. He uses the example of the pain and time it took to get an app into the app store, after automating that he had more time to do the cool parts of his job that he enjoys. The panel discusses how this can benefit the solo developer and not just a developer that is part of a team.
The panel considers how automation affects the way developers learn, does help developers avoid learning to do something for themselves. Unfortunately, David believes that true. He recommends learning how to do the things your automated systems do, it may just save your butt when your system fails. He advises thinking of automated systems as a minion. It is there to do the tedious and painful jobs you don’t want to do yourself but you should still know what your minion is doing.
The panel considers the various CI tools. David has used many different tools including Jenkins, Travis, CircleCI, Bitrise and the beta for Github actions. He explains that Bitrise is a great option, it is very visual and good for beginners. Github action will be good once it is released, the best part will be the community. Both Github action and Bitrise are opensource. Jenkins has been around forever, therefore, it has good roots and is powerful. However, Jenkins is not for everyone. David explains that there should be more tools to fill the spectrum of needs.
The panel considers security in automated systems. David explains that it is hard to tell which automated systems are more secure. They consider ways to determine how secure an automated system is. Open source is one way, you can look for holes in the system by checking out the source code. Also, some systems have a reputation for security.
The panel considers the lack of educational resources and good documentation for CIs. David shares how frustrating it can be to try and find a fix for a failed build in a CI. He shares some of his hopes for the future of CI including, rich feedback, documentation, and resources for learning automated systems.
The episode ends with a discussion of Xcode bots. Peter Witham shares his experience using them. David explains that even though they have great user experience it is still really limited in what it can do. The panel finishes with some final advice for automating painful things.
Panelists * Andrew Madsen * Peter Witham
Guest * David House
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * Dev Ed Podcast * My Angular Story * CacheFly
Links * https://www.bitrise.io * https://twitter.com/davidahouse * https://github.com/davidahouse * https://www.facebook.com/ReactNativeRadio/ * https://twitter.com/R_N_Radio
Picks Andrew Madsen:
Peter Witham:
David House:
In this episode of The iPhreaks Show the panel interviews Dave Verwer about his new SwiftPM Library. Dave is an iOS developer from the UK, he’s been working with iOS since the beginning. He is mostly known for his weekly email newsletter, iOS Dev Weekly, which is released every Friday afternoon.
SwiftPM Library is a site that aims to make it easy for people to find quality packages that support the Swift Package Manager to integrate into their project. It is a repository of all the packages he can find and anyone can contribute packages to it.
The CocoaPods Quality Index was his inspiration for this library. The CocoaPods Quality Index gives a quality score based on a few metrics, Dave wanted to do this but specifically for packages that support SwiftPM. The panel considers what this means for SwiftPM, which unlike most package managers it does not have a library of packages to use.
Dave sees two outcomes for the SwiftPM Library, either it becomes the go-to place for people to discover new packages or Github package registry will come along and kill it. The Github package registry is a multiplatform, multilanguage tool for registering packages. Daves explains the features that SwiftPM Library has that gives it a fighting chance against the Github package registry.
First, the SwiftPM Library was built with speed in mind. The Github package registry piggybacks on Github search which therefore will take longer. Also, Github is likely to list its packages in a way that he take those packages and include them in his library as well, so Github will not have more Swift supporting packages than the SwiftPM Library.
Another thing that sets apart SwiftPM Library is that it is all about Swift. The Github package registry also supports other languages like Ruby and Java. It is doubtful that Github will have very many Swift specific features and metadata on their site, where at the SwiftPM Library Dave already has many of those in place.
The panel asks Dave about SwiftPM and how it compares to CocoaPods and Carthage. He explains that SwiftPM is very similar to using Cocoapods, however, you can create a library using X code and also include other libraries as dependencies. He gives a brief walkthrough of how to replace CocoaPods with SwiftPM in a project.
SwiftPM has a couple of limitations that the SwiftPM team is currently working on. Right now in SwiftPM, it does not support resources, such as zip files and images, in packages. Another major limitation of SwiftPM is that you cannot switch between languages in a Swift package. The panel considers these limitations and shares how they affect whether or not they choose SwiftPM.
Once these problems are solved, Dave hopes that everyone will transition to SwiftPM. SwiftPM is managed by Apple, therefore, is a cleaner and better option even though the transition may be painful. The panel shares the things they like about SwiftPM, including how easy it is to use. It becomes so easy to update packages and dependencies after the transition.
Back to the SwiftPM Library, the panel asks Dave more about it works. Dave explains how the quality index works, giving each package a score based on a few quality metrics. The value of a quality index comes from the need to be careful when adding a dependency. The search results on his site are based on the quality score of each package.
The metrics Dave is currently using to measure are: Does it support the latest version of Swift? How many versions of the package have been released? How many stars does it have on its Github repository? Does the license file exist and is it an open source license that is unencumbered?
The panel takes a look at what the search results look like. Dave includes everything a developer would need to know in order to choose the best package for their project. The search results highlight the license source. It includes how many libraries and executables are included in the package. The search results show what version of swift and other platforms are supported. Not only does it show you the master branch but also the latest stable version and the latest beta of the package when possible.
Dave walks the listeners through how to contribute packages to the library. Dave explains his philosophy when it comes to running the site, his role is not a gatekeeper. He doesn’t want to decide which packages to include and which to exclude. His hope is that the quality indexing will sort the good from the bad. Anyone can add to the library and anyone can request a removal from the library. Any problems with packages should be deferred back to there maintainers.
Panelists * Jaim Zuber * Abbey Jackson * Gui Rambo * Andrew Madsen
Guest * Dave Verwer
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * Adventures in .NET * Adventures in Angular * CacheFly
Links * Launching the SwiftPM Library * Quality Indexes * WWDC 2019 Keynote — Apple * Github Package Registry * Carthage * Elasticsearch * https://forums.swift.org/c/development/SwiftPM * https://daveverwer.com/ * https://twitter.com/daveverwer?lang=en * https://www.facebook.com/ReactNativeRadio/ * https://twitter.com/R_N_Radio
Picks Dave Verwer:
Jaim Zuber:
Andrew Madsen:
Gui Rambo:
Abbey Jackson:
In this week’s episode of the iPhreaks Show the panel interviews Rob Whitaker, an expert in digital inclusion and accessibility. Rob starts by defining accessibility and explaining why it is important. He explains that 20% of the population has some form of disability, those customers need features to help the navigate applications. Everyone benefits from developers taking the time to think about their app works.
Rob dives into some of the main areas developers should look at when making their apps more accessible. The first and biggest one is making sure apps support dynamic text. Dynamic text makes the biggest difference for most people. All Apple apps support dynamic text. Testing dynamic text is easy, and important; just increase the size of the text and make sure everything still looks okay and reads well. Also, dynamic text isn’t just about making text bigger, some users may prefer smaller text for privacy.
With iOS 13 released, the panel asks about the new features for accessibility. Voiceover and Voice control are the big ones that will really unlock the way users can interact with applications. Voiceover will read the text and also describe pictures to the users. Voice control allows customers the ability to navigate applications much easier.
Rob explains that in the UK there is an annual survey about internet use. Many people don’t use the internet because of a disability and inaccessibility of applications, of those many are physically disabled. Voice control can unlock the internet for them, allowing them access to tools and education that most people take for granted.
Another new feature with iOS 13 is the grid view. Rob explains how this will be helpful navigating a map or something without explicit labels. He warns not to use it on pages where it could cover content.
Testing accessibility is easy and quick. Rob encourages everyone to add it to their routine testing practices. The panel considers automated accessibility testing. Rob shares his disappointing experience with the tools currently available. The panel hopes that new tools will be made now that accessibility is finally getting more attention in the development world.
Rob shares some of the common problems he sees in applications, such as making labels too long, marking things improperly whether accessible or not. For voiceover, he explains that it reads top left to the bottom right and when a display is designed out of order, the voiceover can be out of order and confusing. These problems can be easily avoided by swiping through and making sure that everything makes sense; he warns not to really on the visual display when doing this.
Rob continues to give advice on making applications more accessible. Make sure you are clear about control labels and the consequences of a control. This comment inspires a realization in Peter, who shares an example of having two confirm buttons on the same page for different things and how that could be confusing to the users using voiceover and voice control. He and Rob consider ways to solve that confusion. Rob explains what accessibility hint is and how it gives extra context for things that might work differently than normal.
Rob recently wrote an article on the European Accessibility Act. This is the first law of its kind that specifically mentions mobile. It also has categories and explains the requirements for each category. Rob explains how laws like these should incentives companies to make their applications accessible because if not they could be fined, while also alienating a portion of the population from buying your app.
The episode ends with a discussion of Swift UI and how it can be a tool when it comes to accessibility. Rob explains how as a declarative UI it can make accessibility easier and more accurate. The panel considers the benefits of cross-platform accessibility since accessibility in a Mac app can be difficult.
Panelists * Jaim Zuber * Peter Witham
Guest * Rob Whitaker
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * Adventures in DevOps * Views on Vue * CacheFly
Links * What the European Accessibility Act (Might) Mean for Mobile Development * Web Content Accessibility Guidelines (WCAG) Overview * https://twitter.com/RobRWAPP * https://rwapp.co.uk * https://www.facebook.com/ReactNativeRadio/ * https://twitter.com/R_N_Radio
Picks Rob Whitaker:
Peter Witham:
In this week’s episode of The iPhreaks Show, Charles Max Wood (Chuck) shares some of his thoughts and advice for keeping current. He has started a keeping current email course through DevChat.TV and describes what lessons will be taught in this course. He encourages everyone to subscribe to the email course.
This idea of keeping current is something Chuck has been thinking about for a while. He gives an intro to the subject, explaining the frustration programmers feel after the reach a level of knowledge in the developer community. They ask themselves what do I learn next? What should I be studying to stay current? Chuck counters that question with why.
Why stay current? Chuck wants those who struggle with this to find their motivation behind staying current. He explains that if you are going to spend all this time to level up yourself you should have a goal to reach for. A common answer Chuck hears in response to this question is job mobility. Chuck shares some of his early motivations in staying current. It was partly wanting to stay competitive in the job market. Another part was wanting to sound smart. The last part was loving what he did and just wanting to learn more.
Chuck gives advice for finding a job that you really want. He tells listeners to buckle down and really dive into the technologies at your current job so when you do go looking for a new one they know they can expect you to learn their technologies whether you know them or not. Another suggestion he gives is to find the company you want to work for and learn the technologies they are using. Your initiative and drive will impress them.
Learning a skill for job mobility is okay but if you learn with a specific goal in mind the job mobility will come with it. Companies today hire based more on aptitude and compatibility than if you know the specific technologies they use.
So Chuck's first bit of advice for staying current is to sit down and think of where you want to end up. Do you want to be a speaker, team lead, company engineer, blogger, podcaster or something else? He also tells listeners not to be afraid to change their end goal. Chuck explains that knowing why you want to stay current will help you know what to learn. Learning the technology a company uses is one example.
If your goal is to speak at conferences, you might want to learn what topics are in demand, how to submit a good conference proposal, learn what people want to hear or what it takes to become a keynote speaker. If your goal is to become a blogger you will need to learn how to do SEO. If you want to become the software architect for your company you may need to improve your code organizational skills.
The next question Chuck addresses is “how?”. Chuck recommends everyone get a plan. Some organizations like toastmasters have a plan already laid out. For those interested in blogging there is 31 Days to Building a Better Blog, a book that outlines step by step how to build a good blog. Courses and books can outline your plan, and if you can’t find one, write your own.
When writing your own plan Chuck recommends finding someone who is doing what you want to do and ask them to list what you need to learn to do that thing. After that, you need to sit down and write out what and how you are going to learn.
As Chuck has mentioned do not be afraid to change your goal. Chuck shares a time in college when he decided he wanted to go into patent law. He quit his IT job and took an internship. He hated it and within a few months had switched back to computers. So don’t be afraid to scrap your plan and do what will make you happiest.
Now for the actual learning, Chuck explains that there are so many ways to learn podcasts, videos, blogs, books, and courses. He describes how he learns best and advises listeners to find out how they learn. If you know what works best for you, you can design your plan to fit your learning style. Chuck encourages listeners to try a bit of everything. He shares how his attitude toward books changed as he put their concepts into action and all because he tried everything. Also, something types are learning for conceptual learning while others are more suited for practical learning.
Chuck explains how building and playing around with what you learn. He also encourages listeners to shares their experiences through blogs, video or podcasting. This way you will have a way to demonstrate what you learned.
The last thing Chuck explains is that even after you've completed your plan sometimes these things take time. You may learn everything on your list only to find you have more things to learn before you reach your goal.
Panelists * Charles Max Wood
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * Adventures in Blockchain * React Native Radio * CacheFly
Links * Get a Coder Job * https://devchat.tv/blog/how-to-stay-current-effectively-in-2019/ * JSJ 387: How to Stay Current in the Tech Field * 31 Days to Build A Better Blog * https://thinkster.io/ * https://www.pluralsight.com * https://www.facebook.com/ReactNativeRadio/ * https://twitter.com/R_N_Radio
Picks Charles Max Wood:
Episode Summary In this episode of The iPhreaks Show Andrew Madsen and Evan Stone discuss the recent Apple Event and the announcements made there. To start, the panel discusses their thoughts one the event as a whole. The panel was surprised that the event was very product-driven with only a few mentions of software changes. Andrew did notice that when they did talk about the software they introduced it with the hardware as one product, which he enjoyed as a more holistic approach than in previous years.
Apple Arcade and the games they featured is the next topic the panel discusses. Andrew explains that he is not much into gaming but even his interested was piqued by the games they demonstrated. Evan wonders how the games will translate across platforms. He is especially interested in how they will translate to the Apple TV.
This brings them to a discussion of the Apple TV+. The panel considers the risk Apple is taking by only airing original content. They comment on the trailer for See that was shown at the conference. Andrew explains that they will have around 50 shows to start all over various genres. Evan brings up the very affordable price of only 5 bucks a month or free for a year when you buy an apple product. The panel considers how this strategy will help them build up an audience.
Another product announced at the event is the apple watch series 5. The panel jumps into discussing the new health features. They share how impressed they were the videos that explained the new health features. Andrew wonders with all the amazing things the watch can do what will they come up with ten years from now. He and Evan consider the possibilities, warnings for heart attack or stroke, blood sugar monitoring and more.
Moving on from the health features of the watch, the panel discusses a feature that has been a long time coming, the always-on screen. The panel considers why it took so long for this feature to come out. Evan shares his particular interest in this feature because of the safety hazards of looking at his watch while biking.
Another new feature for the apple watch 5 is the added compass. The panel laughs as they never realized the watch didn’t have a compass especially because the apple watch 4 comes with GPS. The panel discusses how the compass may help other functionalities of the watch like GPS and maps. The final point the panel discusses about the new apple watch is that through Apple Watch Studios you can choose your case and band.
The panel talks briefly about the iPad announcements, which they deemed the least interesting announcement. Apple is adding a smart connector to the low-end iPads and increasing the size of the screen. The panel considers how these changes along with pencil support make it a great deal.
The main show at the event was the iPhone 11 presentation. The panel expresses how impressed they were with the way the iPhone 11 was presented. Along with performance improvements and a second camera, the iPhone 11 comes in a lot more colors than previous phones. Andrew is especially excited about the green phone and hopes to pick up a green iPhone 11 Pro.
The panel considers the look of the phone. Evan expresses his disappointment with the square bump on the back where the cameras are mounted. They consider how cameras work and why the bump is necessary.
They move onto the quality of the cameras. Andrew explains that while he is a camera and photography hobbyist, most of the pictures he takes with his phone are personal, family photos. Evan is not much of a photographer but loves having a high-quality camera on his phone. He especially appreciated it on his recent trip to Portugal. The quality of the camera makes a difference, the example they use for this point is by comparing a picture taken with an iPhone and one taken by a $50 android phone. There is no contest. However, Google cameras have gained a reputation for quality, the panel explains why this is a good thing. A little competition will help apple stay motivated in advancing its camera quality.
Panelists * Andrew Madsen * Evan Stone
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * Adventures in DevOps * Elixir Mix * CacheFly
Links * September Event 2019 — Apple * Apple Arcade * See Trailer * List of AppleTV+ shows * Apple Watch Studio * The Green iPhone 11 * Light L16 * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Andrew Madsen:
Evan Stone:
Episode Summary In this episode of The iPhreaks Show, the panel interview Brian Voong. Brian runs a YouTube channel where he teaches about iOS development. The episode of his channel that the panel discusses with him is about the Roadmap to iOS development. Brian starts by giving a brief overview of what his video contains and how it is given with the intent to help developers find jobs in the iOS industry.
The YouTube video has over 40,000 views and the panel wonders who are all these people watching this video. Brian explains that YouTube is a major resource for many people learning about development. Also this video appeals not only to beginners but also mid-level and senior developers who want to know what to learn next. The video features a diagram that depicts the roadmap an iOS developer should follow, so people are interested to see where they stand.
The panel dives into nitpicks of the roadmap. The panel disagrees that Swift is considered functional programming only. Functional programming on the map is at the top but the panel debates whether or not it should be further down on the map. The panel considers functional programmings place now that functional programming is becoming more prominent in the iOS world, especially with the Combine framework coming out. The panel points out that Swiftjective C is missing and wonders if it should have been included.
Once you have mastered the basics the panel wonders at what is the most important thing to learn. Brian explains to those who can see the diagram that there are close to 50 subjects listed for developers to learn. He chooses a few he thinks are the most important subjects to learn if a developer is hoping to get hired soon. He lists: learning how to work with a database, create crud screens, interact with restful API’s and do some effective network programming. Brain describes these as items to get your feet wet.
The panel explains that you don’t need to know all of the items on the roadmap in order to get a job. It is more important to have all the basics and good problem-solving skills. Brian does mention some of the skills at the bottom of the roadmap that might be good to learn, such as Build Config, Jenkins and knowing how to deploy an app.
Looking at the map, the panel wonders at the best way to read it. Initially, they assumed top to bottom would be best and in order of priority. Seeing deployment at the bottom, the panel describes the roadmap as more of a life cycle because they consider deployment a skill every beginner should have.
The panel gives advice to new developers. It might seem that you need to learn all this stuff and then start coding but the panel explains that the best way to learn is through coding, running into problems and learning these skills to solve them. The panel compares it to learning a spoken language, in the beginning, it is about making yourself understood and as you speak it your grasp of the language will grow. They suggest letting the subjects find you when you need them instead of seeking them out.
Brian explains why he recommends learning Jenkins near the beginning. He explains that so many junior developers have the exact same skill set and by knowing something like Jenkins you can set yourself apart from the rest. The panel shares why it may be important to know some CI stuff and be able to do a few things with it.
The last topic they discuss in this episode is what tips and tools a developer should learn listed under the tips and tools heading on the roadmap. Brian suggests Break Point and Instrument. The panel explains what Instrument is most useful for, finding excessive memory usage and performance problems.
Panelists * Andrew Madsen * Jaim Zuber * Evan Stone
Guest * Brian Voong
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * GitLab | Get 30% off tickets with the promo code: DEVCHATCOMMIT * My Ruby Story * CacheFly
Links * iOS Roadmap to Professional Developer: Skills you MUST have! * Roadmap to iOS Development * https://www.letsbuildthatapp.com/course/youtube * https://www.letsbuildthatapp.com/ * https://twitter.com/buildthatapp * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Andrew Madsen:
Jaim Zuber:
Evan Stone:
Brian Voong:
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * GitLab | Get 30% off tickets with the promo code: DEVCHATCOMMIT * My Ruby Story * CacheFly
Panel * Gui Rambo * Erica Sadun * Jaim Zuber * Andrew Madsen
Summary Back by popular download, iPhreaks episode 252!
In this episode, the iPheaks panelist speaks with, their very own, Gui Rambo. Gui shares information about the new features with Siri in iOS 12. Gui talks about the extended integration of Siri with other apps in iOS. The panel continues to discuss the further contextual suggestions of Siri, as well as the customizable features and extensions with Siri. Lastly, Gui talks about a new app, the Shortcuts App, that may make an appearance in iOS 12. This is a great episode to learn more about the upcoming new feature for iOS devices.
Links * iPS 252: Siri in iOS 12 with Gui * https://github.com/insidegui/Milkshakr * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Gui Rambo:
Erica Sadun:
Jaim Zuber:
Andrew Madsen:
Sponsors * Sentry– use the code “devchat” for two months free on Sentry’s small plan * GitLab | Get 30% off tickets with the promo code: DEVCHATCOMMIT * My Ruby Story * CacheFly
Panel * Jaim Zuber * Abbey Jackson
Joined by Special Guest: Petrie Michael
Summary Joining iPhreaks is our new panelist Abbey Jackson, an iOS developer from Vancouver, Canada and our special guest Petrie Michael, an iOS developer from Australia currently working in Japan. Petrie has joined the podcast today to discuss his recent talk at TrySwift about Ray tracing. After defining ray tracing and explaining how it works, Petrie walks the panel through his demonstration for his talk. The panel discusses the technology he uses and how a bigger project becomes much more complex using a Mercedes rendering he did. Petrie introduces binary space partitioning and how this speeds up the process. The panel asks Petrie for recommendations for beginners to graphics, how to get started and what language to use.
Petrie shares his opinions on the state of the industry. The first being that modern programmers try to solve problems that don’t exist. The second being that programmers are neglecting to focus on things that encourage productivity. The panel discusses examples of these and how we can improve.
Links * Ray Tracing in One Weekend * Graphics like Pixar using Swift * https://github.com/kapsy/swift_ray_tracer * Binary space partitioning * https://www.blender.org/ * iPS 258: Learning Objective-C as a Swift Developer with Abbey Jackson * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Abbey Jackson:
Petrie Michael:
Sponsors * Sentry– use the code “devchat” for 2 months free on Sentry’s small plan * React Native Radio * DevEd Podcast * CacheFly
Panel * Jaim Zuber * Michael Holt * Evan Stone
Joined by Special Guest: Katsumi Kishikawa
Summary Katsumi Kishikawa, a talented open source library creator from Japan joins the panel which now includes our newest panelist, Evan Stone, an iOS developer and consultant since 2011 based in San Francisco. Katsumi shares with the panel how he got started and why he created a library that lets you use compositional layout back to iOS11. The panel considers the cool features that can be used with this tool and Katsumi shares some new features he is hoping to implement before the iOS13 release. Katsumi explains how the code tricks the compiler to make possible to backport to older versions of iOS. The challenges in backporting to iOS12 and 11, including orthogonal scrolling is discussed. Katsumi shares a bit about an application he built called Swift-ast-explorer. Impressed with all Katsumi’s work, the panel wonders how he gets all this done and they thank him for sharing his work.
Links * Using Collection View Compositional Layouts and Diffable Data Sources * https://github.com/kishikawakatsumi/IBPCollectionViewCompositionalLayout * http://iosdevbreak.com/ * https://github.com/kishikawakatsumi/IBPCollectionViewCompositionalLayout * https://swift-ast-explorer.kishikawakatsumi.com/ * https://devchat.tv/iphreaks/160-ips-iot-with-evan-stone/ * https://twitter.com/k_katsumi * https://kishikawakatsumi.com/ * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Michael Holt:
Evan Stone:
Sponsors * Sentry– use the code “devchat” for 2 months free on Sentry’s small plan * CacheFly
Panel * Andrew Madsen * Jaim Zuber * Michael Holt
Joined by Special Guest: Donny Wals
Summary Donny Wals joins the panel to discuss his most recent talk at Try!Swift in Tokyo. The panel starts by discussing the most common complaints about Core Data. Donny shares how the changes made in iOS 10 and past updates solve these complaints. The panel discusses migration and how it has changed, making it much simpler and easier to use. Various Core Data features and their use cases are considered.
Links * In defense of Core Data * https://twitter.com/donnywals * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Andrew Madsen:
Michael Holt:
Donny Wals:
Sponsors * Sentry use the code “devchat” for 2 months free on Sentry small plan * CacheFly
Host: Charles Max Wood
Episode Summary Charles talks about his journey as a podcaster and his mission with Devchat.tv. Devchat.tv is designed to home podcasts that speak to all developer communities. Charles also plans Devchat.tv to host shows for technologies that are on the verge of a breakthrough and will be a lot more widely available in the near future such as Artificial Intelligence (AI), Internet of Things (IoT), Virtual Reality (VR) and Augmented Reality (AR). There are new shows being added continuously to reach out to new communities, some examples of which are: a Data Science show, a DevOps show and an Open Source show. As a kid, Charles would record his own shows on a tape recorder. He was always interested in technology. While studying Computer Engineering at Brigham Young University, he worked in the University's Operations Center. Upon graduation, he started working for Mozy where he was introduced to podcasts. Listen to the show to find out the rest of Charles' story, some of the lessons and tips he learned throughout his journey and the evolution of the shows on Devchat.tv. If there isn't a show for your community and you would like there one to be, reach out to Charles. Also if there was a podcast about a programming related subject that ended abruptly and you would like it to continue, reach out to Charles. Devchat.tv would like to host these podcasts.
Links * Charles' Twitter * EverywhereJS JavaScript Community * EverywhereRB Ruby and Rails Community * Find Your Dream Job As A Developer * Devchat.tv on Facebook * Devchat.tv
Picks * EverywhereJS JavaScript Community * EverywhereRB Ruby and Rails Community * Netlify * Eleventy * https://github.com/cmaxw/devchat-eleventy
Sponsors * Sentry– use the code “devchat” for 2 months free on Sentry’s small plan * CacheFly
Panel * Andrew Madsen * Jaim Zuber * Michael Holt
Joined by Special Guest: Dušan Tadić
Summary Dušan Tadić joins the panel to discuss his recent blog post “Make UIControl More Swifty”. Dušan explains why he made it more swifty and what made him decide to improve it. The panel gets to know Dušan; he shares what it’s like working in Germany, what it's like being the only IOS developer in his company and what it’s like working for a product company instead of an agency. Dušan shares his experience learning Objective-C as a Swift developer. The panel discusses debugging apps with rogue notifications.
Links * https://www.dusantadic.dev/post/make-uicontrol-more-swifty/ * https://www.dusantadic.dev * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Andrew Madsen:
Jaim Zuber:
Michael Holt:
Sponsors * Sentry– use the code “devchat” for 2 months free on Sentry’s small plan * CacheFly
Panel * Michael Holt * Andrew Madsen
Joined by Special Guest: Igor Kulman
Summary Igor Kulman shares his experience pitching to the Swift evolution process and submitting a proposal. The panel discusses his pitches and his options going forward. Igor explains why he pitched a change to the standard library instead of creating his open source libraries. The panel encourages developers to contribute to Swift. Igor discusses his background with Windows phone, the challenges switching to be an iOS developer and building a Hackintosh computer. The panel compares C# and Swift, considering the new combine framework.
Links * https://forums.swift.org/t/pitch-unkeyeddecodingcontainer-movenext-to-skip-items-in-deserialization/22151 * https://github.com/apple/swift/pull/23707 * https://forums.swift.org/t/pitch-method-to-sum-numeric-arrays/24170 * https://github.com/Microsoft/referencesource * https://blog.kulman.sk/ * https://twitter.com/igorkulman * https://www.facebook.com/iphreaks/ * https://twitter.com/iphreaks
Picks Michael Holt:
Andrew Madsen:
Igor Kulman:
Sponsors * Sentry use the code “devchat” for 2 months free on Sentry small * CacheFly
Panel * Jaim Zuber * Micheal Holt
Joined by Special Guest: Jason Zurita
Summary Jason Zurita joins the panel to discuss his recent blog post about websites using SwiftUI and AWS Lambda. Jason explains what SwiftUI and AWS Lambda are and how to write server code for serverless sites. The panel asks Jason about writing backend code and using Docker. The other server-side options for SwiftUI are considered. Jason explains why he recommends not templating when using SwiftUI. The panel considers what systems this would work for and using SwiftUI on other platforms.
Links * https://jasonzurita.com/websites-using-swift-and-aws-lambda/ * https://jasonzurita.com/websites-using-swift-and-aws-lambda-part-2/ * https://www.docker.com/ * https://www.pointfree.co/ * https://worthdoingbadly.com/swiftui-html/ * https://github.com/dokun1/Vaux * https://twitter.com/jasonalexzurita * https://swiftfest.io
Picks Jaim Zuber:
Michael Holt:
Jason Zurita:
Sponsors * Sentry use the code “devchat” for 2 months free on Sentry’s small plan * CacheFly
Panel * Jaim Zuber * Michael Holt
Joined by Special Guest: Paul Samuels
Summary Paul Samuels joins the panel in discussing his recent blog post. He shares the takeaways from the blog post. The panel discusses the problems that prompted Paul to write this post and how these tools fix these problems. Paul gives examples of how to organize your code. The panel discusses the possible restrictions and disadvantages of this tool. Paul explains how to write code for multiple platforms. The panel discusses libraries and data storage that might work for this tool.
Links * https://paul-samuels.com/blog/2019/03/09/tying-things-together/ * https://twitter.com/paulio87
Picks Jaim Zuber:
Michael Holt:
Paul Samuels:
Sponsors * Sentry use code “devchat” for 2 months free
Panel * Jaim Zuber
Joined by Special Guest: Hassan El Desouky
Episode Summary Hassan el Desouky is a computer science student from Egypt, his dream is to join a big company like Google, Apple, or Facebook. He talks about his experience applying for the big tech companies in his article How I Failed 39 Interviews and What I’ve Learned. Hassan talks about some of the difficulties faced by people from overseas applying for the big American tech companies. He shares some advice for applying and interviewing for big companies that he received from a friend that works at Google. Hassan notes that the interview process in Egypt is different for the process in America. In America, companies favor snapshot interviews, and Hassan shares some of the problems with that method and how the process differs in Egypt. Hassan has found that one thing that helps with getting an interview is having an online presence. He shares advice for people who want to build their online presence as well as some writing tips. Hassan and Jaim finish by discuss the developer community in Egypt and how attending meetups helps college students.
Links
Follow DevChat on Facebook and Twitter
Picks Hassan El Desouky:
Sponsors * Sentry use the code “devchat” for 2 months free on Sentry’s small plan * CacheFly
Panel * Jaim Zuber * Andrew Madsen * Dave Delong
Joined by Special Guest: Derek Selander
Summary Derek Selander introduces himself and how he got started. The panel discusses debugging strategies and debugging with LLDB. The discussion moves to Hopper and using it to see what the UIKit is doing. Assembly Language differences between Swift and Objective and the effect on ABI stability are considered. The panel endorses Derek’s book as a great resource for developers. Derek shares how having this knowledge has helped him as a developer.
Links * https://www.hopperapp.com/ * https://www.hex-rays.com/products/ida/debugger/index.shtml * https://en.wikipedia.org/wiki/Mach-O * https://www.raywenderlich.com/615-assembly-register-calling-convention-tutorial * https://github.com/nygard/class-dump * https://github.com/derekselander/ * https://twitter.com/lolgrep
Picks Andrew Madsen
Dave Delong
Derek Selander
Sponsors * Sentry use the code “devchat” for 2 months free on Sentry small plan * CacheFly
Panel:
Special Guest:Mohammad Azam
Episode Summary In this episode of iPhreaks, the panel hosts Mohammad Azam, a Full Stack Immersive Web Instructor at DigitalCrafts and a Udemy instructor. Mohammad talks about ARKit: how it works, its features, its benefits and which industries will possibly benefit from this augmented reality framework.
They talk about what actions Apple takes to help developers feel more comfortable with 3D development. They also briefly compare ARKit and Unity. Mohammad gives examples of some of the more interesting projects he has seen done, using ARKit. He then talks about resources where developers can learn about ARKit; two of which are Mohammad’s YouTube video, Building Augmented Reality Apps Using ARKit and his Udemy course Mastering ARKit for iOS which offers a coupon code 'iPHREAKS' for Devchat.tv listeners.
Links * Mohammad's Twitter * Mohammad's LinkedIN * ARKit * Building Augmented Reality Apps Using ARKit * Mastering ARKit for iOS - Coupon Code = iPHREAKS * https://www.facebook.com/DevChattv
Picks Andrew Madsen:
Guilherme Rambo:
Mohammad Azam:
Sponsors * Sentry use the code “devchat” for 2 months free on Sentry small plan * CacheFly
Panel:
Special Guest:Abbey Jackson
Episode Summary In this episode of iPhreaks, panel hosts Abbey Jackson, a senior software engineer at Mastercard fraud detection from Vancouver, Canada.
Abbey was a part time nanny before she became a developer. Her journey as a developer started when she decided to attend an 8-week Swift boot camp. Within 3 years of the boot camp she started working at Mastercard as a senior developer. Although Abbey currently develops using Objective-C, she started developing in Swift. She talks about the different concepts she struggled with as a Swift developer, such as the difference between nil, NULL and NSNull in Objective–C.
They talk about the tools and books available to developers who want to learn Objective–C. Abbey has used the Slack Objective–C channel extensively to ask for advice on coding practices.
Links * Abbey's Twitter * Abbey's GitHub * Abbey's Website * https://www.facebook.com/DevChattv
Picks Andrew Madsen:
Dave Delong:
Jaim Zuber:
Abbey Jackson:
Panelists: * Andrew Madsen * Erica Sadun * Guilherme Rambo
Guest: Theodore Dubois
Links: Guilherme Rambo
Erica Sadun
Sponsors * CacheFly
Panel * Jaim Zuber * Andrew Madsen * Erica Sadun * Guilherme Rambo
Epidose Summary iPhreaks is back after a break. In this episode of the iPhreaks, the panel gives an update on what they have been working on while the show was on break and what they plan for the show for the upcoming year. The panel is booking guests for the upcoming shows and can be contacted for suggestions for a topic ideas and guests.
Links: * iPhreaks Podcast (@iphreaks) | Twitter * DevChat.tv Facebook
Picks: Guilherme Rambo:
Erica Sadun:
Jaim Zuber:
Andrew Madsen:
Panel:
Special Guest: Paul Hudson
In today's episode, the iPheaks panelist speaks with, their very own, Gui Rambo. Gui shares information about the new features with Siri in iOS 12. Gui talks about the extended integration of Siri with other apps in iOS. The panel continues to discuss the further contextual suggestions of Siri, as well as the customizable features and extensions with Siri. Lastly, Gui talks about a new app, the Shortcuts App, that may make an appearance in iOS 12. This is a great episode to learn more about the upcoming new feature for iOS devices.
In particular, we dive pretty deep on:
Links:
Picks:
Jaim
Erica
Gui
Andrew
Panel:
Jaim Zuber
Special Guest: Yonas Kolb
In today’s episode, the iPhreaks panel talks to Yonas Kolb about XcodeGen and other Swift tools. Yonas works on a number of open source projects that Jaim has been working with recently, notably XcodeGen, Mint, and Beak. They talk about what each of these open source tools are and do, use cases for XcodeGen, and the benefits of checking in VS not checking in. They also touch on obscure things you can do with XcodeGen, how he started the project, and more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Jaim
Yonas
Panel:
In today’s episode, the iPhreaks panel talks to Parveen Kaler about iOS architecture at scale. Parveen has been doing mobile development, specifically iOS development, for almost 10 years now, and he previously used to work in the video games industry. They talk about the difference between scale when it comes to dollars and revenue, the pull request process, and what good architecture at scale is. They also touch on creating uniform views, object mappers, and more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Jaim
Gui
Parveen
Panel:
Special Guest: Shai Mishali
In today’s episode, the iPhreaks panel talks to Shai Mishali about RxSwift. Shai is an iOS engineer who started his career as a backend engineer. Currently, he is in charge of the Tim Horton’s iOS app, and in his free time he does a lot of open source, specifically within the RxSwift community. They talk about how he got into programming, the difference between React and RxSwift, and they explain ReactiveX. They also touch on the downsides of Rx, how debugging works, and more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Jaim
Erica
Shai
Panel:
Andrew Madsen
Special Guest: Alex Fishman
In today’s episode, the iPhreaks panel talks to Alex Fishman about Bugsee. Alex the founder and CEO of Bugsee, which is a bug and crash reporting tool for mobile apps. Before going into the startup scene, he spent 16 years working in the digital camera space before the iPhone took over. They talk about what Bugsee is and how it works, how Bugsee protects privacy, other use cases for Bugsee, and more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Andrew
Alex
Panel:
Special Guest: Will Bishop
In today’s episode, the iPhreaks panel talks to Will Bishop. Will is 16 years old and is a developer in Australia. He really got into iOS development about a year ago at his school when he had to create an iOS app for one of his classes, which really made him fall in love with iOS app development. They talk about why he decided to create an app just for the Apple Watch, setting yourself apart from big companies, the business model for his apps, and more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Andrew
Gui
Will
Panel:
Jaim Zuber
Special Guest: Michael Fey
In today’s episode, the iPhreaks panel talk about 1Password with Michael Fey. Michael is the team lead for the Apple team at 1Password. 1Password is a password manager that helps to keep people safe online by allowing people to store all their passwords and credit card information in it and it keeps it all safe behind one password that you know, your master password. They talk about why someone would use 1Password, iOS 12, how the data is stored in the app, home pod integration, and more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Jaim
Michael
Panel:
In today’s episode, the iPhreaks panel talk about Marizipan. Marzipan is the compatibility layer that Apple invented in order to bring UIKit apps to Mac. They talk about the rumors behind the creation of Marzipan, why Apple is waiting until next year to launch it, and discuss what will make these new Mac apps iOS capable. They also touch on how you can run iOS apps on the Mac prior to Marzipan’s release, Marzipanify, and much more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Jaim
Erica
Andrew
Gui
Panel:
Special Guest: Leo Dion
In today’s episode, the iPhreaks panel talk to Leo Dion about MicroConf and writing apps for Apple Watch. Leo has been a developer for almost two decades and six years ago he created his own company called BrightDigit. He mostly focuses his time and energy to the Apple space and enjoys developing apps for the iPhone, iPad, and the Apple Watch. They talk about what happens at MicroConf, what he is working on now, tips for starting a meetup, and more!
In particular, we dive pretty deep on:
Links:
Sponsors:
Picks:
Jaim
Erica
Gui
Leo
Panel:
Special Guest: Paul Hudson
In today's episode, the iPheaks panelist speak with Paul Hudson about Writing, Swift, & Writing Swift. Paul is the author of Hacking with Swift, Pro Swift, Swift Design Patterns, Server-Side Swift, Hacking with macOS, Hacking with watchOS, Hacking with tvOS, Swift Coding Challenges, and more. Suffice it to say, he quite likes Swift. And coffee. (But mostly Swift.) (And coffee.)
In particular, we dive pretty deep on:
Links:
Picks:
Paul
Erica
Andrew
Panel:
Special Guest: Andrew McKnight
In today's episode, the iPheaks panelist speak with Andrew McKnight about Surveying How Swift Evolves. Andrew provides information on a presentation he did at iOS Dev Camp Colorado, on a survey looking at the open source Swift repositories to see how developers are extending the language, foundation, or standard library. This is a great episode to gain insight into how developers on the iOS platform are helping evolve the Swift language and much more.
In particular, we dive pretty deep on:
Links:
Picks:
Gui
Erica
Andrew
Jaim
Andrew McKnight
Panel:
Special Guest: Marin Todorov
In today's episode, the iPheaks panelist Erica and Gui talk about backups. Why are backups important, how to maintain up-to-date local and off-site backups and backup service suggestions. Gui and Erica share examples and horror stories of neglecting to backup data. This is a great episode to learn about when, why and how to backup your devices and computers to cloud services, and best practice for categorizing your personal and business data for backup.
In particular, we dive pretty deep on:
Links:
Picks:
Gui
Erica
Panel:
Special Guest: Marin Todorov
In today's episode, the iPheaks panelist speaks with Marin Todorov about Realm. Marin is an independent developer and works exclusively in the iOS platform. Marin does contract work, open source projects is an author of multiple publications, a speaker, and does in-house training. Marin answers questions about the inner workings or Realm, what and who is using Realm, how it functions and popular ways to implement Realm in your projects.
In particular, we dive pretty deep on:
Links:
Picks:
Gui
Andrew
Marin
Panel:
Special Guest: Chris Adamson
In today's episode, the iPheaks panelist speak with Chris Adamson, a freelance iOS and Mac developer from Grand Rapids Michigan. Also, Chris is an author and co-author of a number of books, including Xcode Treasures. Chris is on the show to talk about this book abut Xcode called Xcode Treasures. This is a great episode to learn about another avenue of valid information on the inner workings of Xcode.
In particular, we dive pretty deep on:
Links:
http://subfurther.com/blog
https://www.linkedin.com/in/invalidname//
https://www.oreilly.com/pub/au/1045
Xcode Treasures
https://developer.apple.com/xcode/
Picks:
Gui
Andrew
Erica
Chris
Panelist
In today's episode, the iPheaks panel, Jaim, and Andrew discuss conferences such as WWDC, AltConf, Next Door Conf NDC, and many of the events and attraction when attending conferences. This is a great episode to learn about the various facets of conference hopping. Topics covered involve the number of attendees at these individual conferences, speaking at conferees, logistics of attending, tourist attractions, parties, after events, and much more.
In particular, we dive pretty deep on:
Conferences and Events:
Conference Tips:
Picks:
Jaim
360 S Market St #80, San Jose, CA 9511
200 S 1st St, San Jose, CA 95113
Andrew
Panel:
Special Guest: Derrick Hathaway
In today's episode, the iPheaks panel, Erica, and Andrew speak with Derrick Hathaway about GraphQL. Derick is a mobile app developer and works at LifeOMic. Derrick is on The Freelance Show to discuss exactly what GraphQL is about. This is a great episode to understand the structure of GraphQL on the client and server side, and many other facets and features.
In particular, we dive pretty deep on:
LINKS:
Picks:
Erica
Andrew
Derrick
Panel:
Special Guest: Paul Shelley and Eric Ludlow
In today's episode, the iPheaks panel, Erica, Andrew, and Jaim speak with Paul Shelley and Eric Ludlow, both graduates of a boot camp at Dev Mountain. The topics cover, what is a boot camp, computer science, app development, duration of training, investment, who goes to boot camp, iOS programming, and much more. This is a great episode to learn more about how developer boot camps work.
In particular, we dive pretty deep on:
LINKS:
Picks:
Erica
Andrew
Eric
Paul
Panel:
Special Guest: Gregorio Zanon
In today’s episode, the iPhreaks panel talk to Gregorio Zanon about data transparency and iMazing. Gregorio is in Geneva, Switzerland currently and is the code leader at DigiDNA which created the app iMazing. He talks about the inspiration for creating the app, its main functions, and what kind of people use this app. They also touch on the topic of data transparency, what it is, and how it affects developers.
In particular, we dive pretty deep on:
Links:
Picks:
Jaim
Erica
Andrew
Gregorio
Panel:
Special Guest: Joe Fabisevich
In today’s episode, the iPhreaks panel talk to Joe Fabisevich about the new mailing list that he has recently taken over, and you can sign up for it here. He talks about the type of snippets that they send out in the newsletter and gives general information about the newsletter. Joe loves the reception that he has gotten, and this is what fuels him to find new extensions every week to help other people learn. One of his goals for this project is to try to figure out the formula that keeps people coming back each week.
In particular, we dive pretty deep on:
Links:
Picks:
Erica:
Gui:
Andrew:
Jaim:
Joe:
Panel:
Jaim Zuber
Erica Sadun
Gui Rambo
Special Guest: Fernando Bunn
In today’s episode, the iPhreaks panel talk to Fernando Bunn about different storage option for the iPhone, such as Core Data. Fernando has worked with mobile as a hobby since 2006 when apps were developed in J2ME and started to develop apps since the first day the iOS SDK was released in 2008. He is also passionate about using technology to improve people’s lives. This episode is great for those wanting to know more about iPhone storage and Core Data in general.
In particular, we dive pretty deep on:
Links:
Picks:
Gui
Erica
Panel:
Jaim Zuber
Andrew Madsen
Gui Rambo
Special Guest: None
In today’s episode, the iPhreaks panel talk about Andrew’s client project that he’s been working on. To combat an issue, he has been using the audio port on the iPhone in order to transport data. With this, you don’t need any approval from Apple and the hardware is very simple. They go more in depth about how this process works and how iPhone updates affect it, such as the loss of the headphone jack.
In particular, we dive pretty deep on:
Picks:
Gui
Andrew
Jaim
Panel:
Jaim Zuber
Andrew Madsen
Special Guest: Joe Rhodes
In today’s episode, the iPhreaks panel, Jaim and Andrew talk to Joe Rhodes, a developer in Atlanta who is currently working on an app called Kite Compositor. This app is an animation and motion design app for Mac that came out in about March 2017. He left the corporate world to pursue his dream to be an app creator, and has never looked back since. This episode contains a great conversation about the process that goes through the mind of a developer when they are creating their respective apps.
In particular, we dive pretty deep on:
Links:
Picks:
Jaim
Andrew
Panel:
Erica Sadun
Gui Rambo
Special Guest: None
In today’s episode, the iPhreaks panel, Erica and Gui talk about his app ChibiStudio, the challenges and lessons learned, and specifically about how it's like to have a freemium app in the App Store. The app allows people to create their own avatar, or Chibi, that they the can share through the iMessage app. This is a great episode to learn about the thought processes that go into creating a new iOS app.
In particular, we dive pretty deep on:
Links:
Picks:
Gui
Erica
Panel:
Erica Sadun
Gui Rambo
Special Guest: Lisa and
In today's episode, the iPheaks panel, Erica and Gui speak with Lisa Dziuba and Ahmed Suljman about their new product called Flawless App. The discussion covers topics on design, how the app works, marketing, team size, and much more. This is a great episode to learn about new iOS products and their unique build and design, and implementation.
In particular, we dive pretty deep on:
LINKS:
Picks:
Gui
Erica
Lisa
Panel:
Erica Sadun
Gui Rambo
In today's episode, the iPheaks panel, Erica, and Gui talk about the state of Apple in 2018 and what they would like to see from Apple in this new year. The discussion covers topics like where should Apple build their next campus, iMac Pro and desktop computing, replacement Mac lines, Mac mini, Puck Mac, Developer market, control center issues, and much more! This a great episode to get a glimpse of the current needs and wants among the iOS and OS developer communities.
In particular, we dive pretty deep on:
Picks:
Gui
Erica
Panel:
Eric Sadun
Gui Rambo
Andrew Madsen
Special Guest: Junior Bontognali, Marin Todorov, Scott Garner, and Florent Pillet
In today's episode, the iPheaks panel discuss RxSwift with the four authors of the book RxSwift Reactive Programming with Swift. The co-authors are Junior Bontognali, Marin Todorov, Scott Garner, and Florent Pillet. The four authors are developers in their own respective jobs and companies who are experts in Swift and iOS platform. The discussion covers the specifics of RxSwift and Reactive Programming.
In particular, we dive pretty deep on:
LINKS:
Picks:
Gui
Erica
Andrew
Junior
Marin
Florent
Scott
Eric Sadun
Gui Rambo
Jaim Zuber
In today's episode, the iPheaks panel discusses Cloudkit, and many technical details about the cloud-based service. In short, Cloudkit is a cloud syncing solution and works similar to a database. Gui mentions the reluctant users of such type of service, some important discussion with the security and privacy. This is a great episode on understanding the framework of Cloudkit and the technical structure of this cloud service, how data is managing when documents are updated, Change Tokens, costs, and much more.
In particular, we dive pretty deep on:
LINKS:
Picks:
Gui
Eric
Jaim
Panel:
Andrew Madsen
Erica Sadun
Special Guests:
Paul Faria
In today's episode, iPhreaks speaks with Paulo Faria. Paulo is based in Brazil and has been developing for the OSX platform since 2012. Also, Paulo mentions focusing on server side development and working in iOS and Android development. Paulo is the creator of Zewo and one of the first to work with server-side Swift. Paulo is on iPheaks to talks about Concurrency. Paul believes that concurrency is the missing feature to make it a true and mature ecosystem for server-side on Swift.
In particular, we dive pretty deep on:
LINKS:
Picks:
Erica
Paulo
Andrew:
Panel:
Jaim Zuber
Gui Rambo
Special Guests:
Meng To
Marcos Griselli
In today's episode, iPhreaks speaks with Meng To and Marcos Griselli about Design Code. Design Code is an interactive book and app on how to design and code an iOS 11 app. Meng and Marcos talk about early career challenges building an iOS app. Meng talks about solving this problem with their Design Code book and app and making the process faster and intuitive. This is great for developers who want to learn to build an iOS app with little to advance knowledge.
In particular, we dive pretty deep on:
LINKS:
Picks:
Gui
Meng
Panel:
Andrew
Jaim
Erica
In today's episode, the iPhreak panel speaks with Stephen about how Swift could benefit from higher level types like in Haskel, Reactive programming and testing in the Kickstarter app.
Stephen is a software engineer living in Brooklyn, New York. He previously helped build and open source the Kickstarter mobile apps. He's a co-founder of Point-Free , a consultancy and upcoming educational video series on functional programming and Swift.
In particular, we dive pretty deep on:
Picks:
Jaim:
Andrew:
Erica
Stephen
Panel:
Andrew
Jaim
In today's episode, Andrew and Jaim talk about Code Signing and the problems you’ll run into when setting up CI systems. Andrew asks specific questions to help bring to the surface better understanding of the issues, dos and don’ts when working with iOS and Code signing. This is based on Jaim’s experience setting up a build pipeline in Jenkins. This is a great episode for those who are looking to learn more about iOS and ways around roadblocks.
In particular, we dive pretty deep on:
Links:
Picks:
Jaim:
Andrew:
Panel:
Erica
Jaim
Andrew
Special Guest:
Dave DeLong
In today's episode, the iPhreak’s Gui Rambo speaks with Dave DeLong. Dave is a seven-year veteran of Apple, Dave DeLong is an accomplished iOS engineer with a passion for teaching, and hacking the Objective-C runtime. During his time at Apple, he worked on the UIKit framework, Developer Evangelism, and Apple Maps. He now works at Snap, Inc. on the Snapchat app.
Dave, his family, and his large collection of bowties live near Salt Lake City, UT, where he’s an active member of the local developer community. He can often be found on Twitter teaching developers about all the ways that calendrical calculations can go wrong.
In particular, we dive pretty deep on:
LINKS:
Picks:
Jaim:
Erica:
Dave:
Andrew:
Panel:
Gui Rambo
Special Guest:
John Sundell
In today's episode, the iPhreak’s Gui Rambo speaks with John Sundell. John is an iOS Freelancer and currently works with a Norwegian company called Hyper. Hyper builds customer projects and in-house apps.
John builds apps, games & developer tools. He also makes Swift by Sundell, which is a weekly blog & podcast about Swift development. He has worked for companies like Volvo & Spotify. He’s the creator of several open source projects including Unbox, SwiftPlate, Marathon & Imagine Engine.
In particular, we dive pretty deep on:
03:00 - What's Imagine Engine?
It's a game engine that runs on Core Animation.
05:00 - API
John explains what Imagine Engine provides in terms of API and functionality.
07:30 - Why not use SpriteKit?
It's hard to predict how SpriteKit is going to work under pressure, being closed source makes it hard to study.
13:20 - What's Core Animation?
It's an underlying framework that drives the drawing for the UI on Apple's platforms.
15:30 - How does Imagine Engine use Core Animation?
Just like UIKit uses it, objects are backed by layers.
19:40 - Coding for performance
You have to really think about the complexity of everything you do.
25:30 - Supporting different OSes
John started with Metal, but noticed that Core Animation was fast enough. Both are available on all of Apple's platforms.
29:00 - The display link API
Provides a callback so you can sync your code with the display refresh.
30:20 - Unit testing a game engine
Doesn't use strict TDD, but prefers to test automatically so he doesn't have to create a game to test each feature of the engine.
33:05 - Are there games we can try made with Imagine Engine?
Revazendo is in beta.
35:00 - How do you handle input and events?
Imagine Engine provides an unified event API.
38:00 - Game development architecture
There are two popular patterns: component-driven and driving from a central update method (loop). Imagine Engine uses a mix of both.
LINKS:
Picks:
John
Gui’s
Panel:
Gui Rambo
Jaim Zuber
Erica Sadun
Andrew Madsen
Special Guest:
Aleen Simms
In today's episode, the iPhreaks discuss app launch map with Aleen Simms. Aleen has been working in a variety of tech industry roles for nearly a decade. Currently, she is the proprietress of App Launch Map, which helps iOS and Mac developers with the non-code side of launching or updating an app. She also organizes App Camp for Girls Phoenix, where she helps girls, transgender, and gender non-conforming kids learn about the joys (and sometimes misadventures) of iOS app development.
A podcaster herself, you can find Aleen on her own show, Originality, where she and her cohost try to get to the roots of creative genius. You can also find her on The Incomparable from time to time.
In particular, we dive pretty deep on:
Links:
Picks:
Gui:
Jaim
Andrew
Aleen
Panel:
Gui
Jaim
Erica
Andrew
In today's episode, the iPhreaks discuss the High Sierra app updates with Tim Ekl. Tim is an engineer at the Omni group, where Tim work on Omni focus for Mac and iOS. Tim has been active in the iOS community for 5 years and he likes to assists the Xcode meetups.
The discussion dives into the now one-week old public release of High Sierra for OSX. Tim talks about the pain-free transition to the new operating system. Tim goes into the minor bug fixes Omni had to fix as they transitioned, and gives some examples of the functions of Touch Bar feature.
In particular, we dive pretty deep on:
Links:
Omni Group
@timekl
@OmniGroup
timekl.com
Carbon Copy Cloner
Picks:
Gui:
Jaim
Erica
Andrew
Tim
Panel:
Gui
Jaim
Erica
In today's episode, the iPhreaks discuss the firmware leak of the HomePod, and how this may tell us about what Apple is planning for the future. Gui and Erica speak about what the accidental leak of firmware tells us about new device features on the horizon. Gui talks about the new iPhone (8) or iPhone X, based on studying the firmware information.
The discussion dives into the technical build of the firmware, and the possible issues that may affect the daily use of the biometrical authentication technology. Finally, Gui talks about the differences between the old and new firmware, that further solidify that new technology is coming.
In particular, we dive pretty deep on:
Links:
Guilherme Rambo on Twitter: @_inside
Steve T-S on Twitter: @stroughtonsmith
Jonathan Levin on Twitter: @Morpheus
Filipe Espósito on Twitter: @filipekids
Picks:
Gui:
http://www.flixlist.co/titles/80101899
The Founder - (2016) - Netflix
Jaim
https://www.epochconverter.com/
Erica
Cars that work
In this iPhreaks episode, Erica Sadun and Jaim Zuber talk to Greg Raiz about "products instead of features."
[1:25] Greg Raiz Introduction Greg runs RaizLabs which is a consultancy specializing in iPhone and mobile development. Ben Johnson from Raiz Labs has also been on the show.
[2:03] Products vs Features A lot of engineering firms get into lifecycle with their products where they're thinking about the next thing. This often gets broken down into sub-features. The focus then gets placed on that feature instead of what the feature is supposed to serve. Greg gives the example of trying to format a book and when you drag a picture to the left, it jumps to the right and vice versa.
[4:00] Feature-itis A lot of development teams are driven by sales teams. Sales teams often use feature matrices to differentiate their products instead of thinking about your product in a different way from your competitors. Apple and Steve Jobs were great at this and telling the story that differentiated the product without focusing on features.
[5:11] Developing a mission statement or differentiation story They use a scrum methodology to develop the mission statement. Greg explains what a scrum methodology is.
Try not to overthink the product. You don't have to plan the whole thing. Instead, you try to deliver value in discreet chunks.
You could take a timer and ask "What is the purpose of this timer?" It could be time tracking, timing something, or waking someone up.
This helps with team alignment.
Greg talks about working at Microsoft on Windows XP and they determined what the core missions were for XP. Every feature that went into Windows XP had to fit into the buckets they defined.
[9:00] Is waterfall more holistic and agile more flexible? Both methodologies deliver great software. It's more a matter of how you see and use them. Agile allows you to roll with the punches like new technologies and challenges that come up. You can then reprioritize the features.
Delivering each week also means that people can play with something right when it's complete and you can modify it the next week.
The terms can be confusing. The main point of software development is to create something that solves a real user problem
Google Design Sprint methodology focuses on gathering data and making decisions over a condensed work of time.
[13:55] What types of work do you apply this approach to? Android, iOS, Alexa skills, medical applications, and IoT products all benefit from this way of thinking.
[15:00] BlindWays App Perkins School for the Blind
The people who can see, Google maps will get you to the corner where you can see the bus stop.
Blind people get to the corner, but the buses drive right by them because they're not standing at the right place.
Bus drivers are trained to pick up people who are looking for them.
GPS isn't precise enough to get the blind people within a 2 foot radius of where they're supposed to be.
The app's purpose was the get them to the bus stop where they're touching the bus stop pole.
They considered all sorts of features, functionalities, and technologies, but it was all about the mission, not the feature.
Cities move slowly, so the infrastructure isn't going to change or it won't change very quickly.
Agile allowed them to test several solutions and iterate on what was working.
For example, they created several interfaces, added the voiceover accessibility features to it, and handed them off to Perkins students.
You can test voiceover with the screen off. You can also test for automation and scriptability.
[23:05] How do you turn on Accessibility and Voiceover? Most UI elements have it built in, but if you do it wrong, some buttons will say "Button" instead of what the button does.
Apple also has sessions on Accessibility at WWDC.
[25:40] How BlindWays works for users Focus on micro-navigation problem. They count on other maps to get you close and then do the micro-navigation to get you closer.
They crowdsourced clues which are explanations of what you'll see if you're facing the bus stop to the left and the right of the bus stop. This tells the blind person how to figure out where they are in relation to the bus stop based on what they're detecting with their canes, etc.
If you're appoaching a stop, then it tells you if the street is on the left or the right. Then it tells you what you'll encounter before and after other objects to help you navigate.
A clue can also be what the stop is attached to like a wooden or metal pole, concrete wall, etc.
[30:00] How did you gather the clues data? Raiz labs had several people in the area and people who worked in the Boston office.
After a while, people started trying to find stops that didn't have clues.
Then the city got involved and started noting cracks in the sidewalk and things like that.
[31:51] How did you approach designing screens? The followed the HIG and thought about how you build standard interfaces.
They also considered "When I get here, what do I want to hear?" They wanted to make the voice interfaces conversational.
What information does the person at this point need to hear?
People who use voiceover usually use it at around 5x the speed that Greg uses it at. Voiceover generally doesn't slow people down.
[34:48] How do you put your app on a feature diet? Having the mission statement and the story behind it. Understanding the use cases helps keep it simple and limited to the story around the application.
"Wouldn't it be great if..." sometimes made it in and sometimes didn't with BlindWays.
They use stakeholders and project managers they work with to make sure that everyone has the same vision and to prioritize the right things that bring value.
[38:38] How do you sanitize crowd-sourced data? They ruled out several solutions because they were too complex or would have over-scrubbed the data.
They instead looked for things that specifically would be to the left or right and could service the majority of bus stops. They also allowed people to say if a clue was helpful or not helpful.
Citizens Connect where people could take a picture of graffiti or pothole and report them to the city and then city would report back repairs.
In this case, they're trying to reward contributors by closing the loop on clue contributions.
Picks Erica
Jaim
Greg
iPS 211: Making Your App China-Friendly On today's episode of iPhreaks, Gui Rambo, Erica Sadun, Jaim Zuber and special guest – Guanshan Liu talk about Making Your App China-Friendly. Guanshan is on the show today to give some tips on how to prepare your apps to get into the Chinese App Store. Don’t miss this one!
[00:25] – Introduction to Guanshan
Jaim met Guanshan when he was at O-camp. Guanshan was one of the speakers and gave a talk called Make Your Apps China-Friendly. He talked about some of the challenges that people face when trying to get their apps into the Chinese market. Guanshan works at Booking.com and now lives in Shanghai.
[01:15] – Why to get into Chinese App Store
There’s a huge market in China. More Chinese people are going abroad and Chinese users have these smartphones. These smartphones have iOS, but most of them are Android. The people are spending lots of time on their phones every day.
[03:10] – Things to do to get your apps ready for China
First, you need to support Simplified Chinese because not everyone in China can read English.
[03:25] – Simplified Chinese difference
There are two ways of writing Chinese. One is Simplified Chinese, which is used in Mainland China. The other one is called Traditional Chinese. It is used in Taiwan, Hong Kong, and Macau. Most of the time, people can relate on both Simplified and Traditional Chinese.
[03:50] – Dialects
You can still communicate via Simplified Chinese even though there are many dialects in China. But that also depends on the accuracy of translation because sometimes the same word doesn’t mean the same thing. Chinese is not that easy.
[04:25] – Different versions for different parts of China
Booking uses the same app in China as the rest of the world. They use an iPhone API so they don’t need to create a separate app only for China. That really depends on your project.
[07:00] – Strategies on creating apps for many cultures or languages
You only need some knowledge about the people. The data from companies like Alibaba are different. For example, today, there is an app that when you tried to search, it will not return the result.
[09:40] – Designing for different age groups
Young people, they have different tastes. They use an app a different way. For example, they like to send comments and share what they’re watching. They like to shout-out their opinions to other people. They love these features. They are available on radio content providers in China. The idea is originally from Japan but Chinese people also allow it. As they listen to it, they can talk and share them with their friends.
[12:15] – Most users are not going to use cellular data for your app
Cellular data in China is for sale and very expensive. That is true for many developing countries like Brazil. So you have to think about that if you’re targeting any developing country.
If you want to test your app with connectivity, you can use the Network Link Conditioner. You can turn it on and it will degrade your internet connection like a fake bad connection. You can use that to get an idea of how a person in a really bad connection will use your app. It’s very important for a place like China. But Wi-Fi is fairly ubiquitous in the big cities like Shanghai. In most places, there are also free Wi-Fis.
[15:05] – First steps to be China-Ready
It would be good to find a Chinese user to test your app. Most developers in the States, they’ve always been taught to keep their apps simple. With the Alibaba app, it’s different. It has full of stuff. There are lots of icons everywhere. That’s the norm in China.
Picks
Guanshan Liu
Erica Sadun
Gui Rambo
iPS 210: Build Special 3 - Visual Studio Mobile Center Deeper Dive with Ela Malani & Piyush Joshi
This is a special episode of iPhreaks from Microsoft Build with panelists Jaim Uber and Andrew Madsen. There are joined by two special guests, Piyush Joshi and Ela Malani, to discuss Visual Studio Mobile Center. Tune in to learn more about this product!
[00:00:20] Introduction to Piyush
Piyush is a program manager on the Visual Studio Mobile Center team. He has been at Microsoft for nine years. He’s recently been working on the Mobile Setup Services that are provided by Microsoft.
[00:00:44] Introduction to Ela
Ela is a program manager in the Mobile Center and has been working for Microsoft for three years. She owns the SDKs and CLIs for Visual Center.
[00:01:34] What SDKs does Visual Center have?
Mobile Center supports a variety of platforms (iOS, React Native, etc). A great feature is that the SDKs are all Open Source on GitHub. Users can just use the SDKs they want, which provides the ability to keep app sizes small.
[00:02:44] Do you accept contributions?
Definitely. They are always actively looking for the developer community to contribute to the Open Source SDKs.
[00:03:00] If I want to check out the project how do I find it?
There are four projects on GitHub. They are Mobile Center SDK’s iOS, Mobile Center SDK Android, one for dotnet and one for React Native.
[00:03:25] What installation methods do you support?
Developers for iOS can download two ways. They can download manually or via CocoaPods to get started. There is no Carthage support yet, but it is coming.
[00:04:30] When you download this, are you getting a library?
Users are downloading a library. The biggest reason to have it on GitHub is to gain developers’ trust. Developers want to know what you are shipping because of privacy reasons - is it secure, is it safe? SDK’s are collecting user data and developers need to be confident in the privacy abilities. Open Source SDK’s makes the product more attractive. The app developer gets full control of what info gets sent to the backend. Data does not get transmitted if users do not want it to be.
[00:07:30] What does your Command Line Interface (CLI) do? Why do you provide one and how can your users utilize it?
Mobile Center has an open CLI in order for users to have a lot of control. Everything can be done via CLI – using the test services, distributing to users, getting crash reports, uploading files, etc. Developers don’t have to go through the portal. Just open the CLI and perform the same actions.
[00:08:50] Do you know what your users are using the CLI’s for?
Test services is one service that is being heavily used. Mobile Center can provide one line of command that shows what need to trigger in the CLI to set up test services on every device.
[00:10:00] Can you use your own CLI service with Mobile Center?
Yes. Mobile Center provides all setup services but users are free to choose which services they want to take utilize. They don’t have to download a huge file with everything included; they can just download the one thing they want. Each of the services can be used individually or integration with various test distribution. It is up to developers how they want to customize their app.
[00:11:46] How do I set up test services?
Create an account and app within Build. Then access the test service in this case. Use any of the frameworks and start a new test run. Then, upload your package and test scripts. After that, send the tests to the backend, which will run them for you. You can select which devices you wish to run tests on and then can see the results.
[00:15:40] Fast Lane Support
There is no fast lane support in Build right now but they are investigating how that can happen soon.
[00:16:35] Does Microsoft have any Ruby applications?
Not right now but it should not be a problem.
[00:17:10] What platforms are supported with the CLI?
There are two platforms that are supported right now, which are Windows and Mac.
[00:18:00] What led you to support React Native?
A full focus for Mobile Center is React Native. There are not a lot of products out that currently support React Native. A goal is to provide first class support for React Native. Build service also provides support with React Native Apps. They are thinking of how to support CodePush as well.
[00:20:50] HockeyApp
Mobile Center SDKs are developed on top of the HockeyApp SDKs. For people that use HockeyApp, Ela and Piyush recommends trying Mobile Center. The difference is that they are attempting to make Mobile Center the “one stop shop for all developer needs.”
Picks Ela:
Settlers of Catan
Piyush:
Born to Run by Christopher McDougall
Links * Visual Studio Mobile Center * https://github.com/Microsoft/mobile-center-sdk-dotnet * https://github.com/Microsoft/mobile-center-sdk-ios * https://github.com/Microsoft/mobile-center-sdk-android * https://github.com/Microsoft/mobile-center-sdk-react-native
iPS 209: Vapor with Bob Snyder On today's episode of iPhreaks, Andrew Madsen and Jaim Zuber talk about Vaporwith Bob Snyder. Bob is on the show today to discuss the structure of Vapor and web app deployment, etc. Don't miss this one!
[00:01:20] – Introduction on Vapor
Vapor is a server-side Swift framework. It came out two months after Swift became open-source. A couple of weeks ago, they just released Vapor 2.0. It’s a big jump from 1.5. Swift has protocols and has incredible performance as compared to Objective-C and other languages like JavaScript. It deserves more attention.
[00:02:30] – Back-end development before Vapor
Bob is a former graphic designer. He went to a boot camp last year and made that career shift. The boot camp focused on Python and iOS but that was all front-end for apps.
Right now, he is a full-stack developer for a start-up called Crew and he works on Objective-C and Python, and Python Django for the backend. You can deploy, build, and have a production-ready server-side Swift application but you probably want to keep it for a small to mid-size projects. It’s not quite enterprise-level yet.
[00:03:35] – Swift vs. Python
Besides the curly brackets, Bob also loves the Swift protocols. With these protocols, you can apply pretty much different attributes to a class. Working with Xcode and protocols, it gives you good practices for building applications. It’s also type-safe. When it comes to making variables, knowing that you’re keeping the same type of values is very important. That’s actually one of the reasons why the performance is better than JavaScript that isn’t type-safe.
[00:04:45] – Projects with Vapor
Bob has a project with his friend, and they’re making it open-source. It’s a web-based application where you just insult your friends and maybe insult you back. It goes back and forth. In doing that, what allowed Bob to really explore is how easy it is to set up relationships for your database inside Swift versus something else like Python.
[00:05:40] – Structure of Vapor
You have the Droplet which is your entire application. It’s where everything comes down to. That is your server. Everything else just kind of relates to that. You have the Vapor Nodes, which is going to be your central point for all of your data types. The real premise of the server is you have information that you take from outside, get request, you process them, and most of the time that you’re sending it to the database or returning it without going to the database. Each one of those parts to this environment generally takes a lot of interaction to get information for one piece to the next. That’s what vapor nodes kind of comes into play. It makes using that data very easy.
[00:06:30] – Node
A node is a class that has protocols built on top of it. If you want to return a JSON object with a request that you got, you can immediately spit out a JSON object. You get some information from the database. It’s basically a converter that you can return almost any format that you will need inside of Vapor.
[00:08:25] – Fluent
Nodes interact with Fluent. It allows Vapor to communicate with whatever database you’re using. It makes it easy to go from Vapor to a MySQL, a Postgre, or a MongoDB database. You can have a basic server. You’re going to have the Droplet. You’re going to have the information you want to get into a Node. And then, you’re going to send that information to Fluent. Then, Fluent will communicate your profile of the database. That will send on to the actual database. If you want to change the database you’re using, you can do that without changing Fluent, without changing Nodes, or the Droplet. All you have to do is change how your profile on the back-end.
[00:09:30] – Droplets
Vapor has different packages that are built into the Vapor library. The Droplet is the thing that you create. You instantiate one of those. That’s the web server and you can attach handlers for URL’s for routing to it, etc. It’s a top level application where everything else goes through.
Actually, between 1.5 and 2, they’ve made some improvements to the structure of it, as well. In 1.5, they have a lot of things in their main .swift file. And now, it’s really down to 6 lines of code. They have everything partitioned out.
[00: 11:05] – Vapor is modular
That is one reason why Bob thinks Vapor is going to outlast a lot of the other frameworks. You don’t really have to use every part of it. It also allows you to add-in whichever tool you need. Everything’s modular.
[00: 12:50] – Who’s behind Vapor?
They’re called Node. They’re based out of London. They’ve been financing the Vapor project early on. But it was Tanner Nelson and Logan Wright who founded it. They’re still both heading it.
[00: 14:25] – Tools to create new Vapor project
It’s really simple if you can break into a terminal. You will have to download Vapor. You have one command for Vapor. It constructs a framework for you. Vapor xcode will create your Xcode build file. If you check on the run schema to your Mac, you can just run it as a server straight to Xcode.
[00: 18:25] – Validation, Authentication
They have this validation tool that fully manages Swift’s protocols. The authentication is also there. It helps you to connect securely with your users. It’s not in their 2.0 docs but the 1.5 web sockets are still compatible with Vapor 2.0.
[00: 21:30] – Web app deployment
Vapor does have support for Heroku. That’s one of the first deployment options that they have. But using Ubuntu server is going to be the better option down that road. Heroku is good but it’s not something you have that much control when it comes to scaling. If you ever need to deploy something larger, to a cloud-based ecosystem, try to figure out Ubuntu, try to figure out better ways to deploy it. Heroku used to be the only deployment option that they offer but now they have Nginx and Supervisor.
There’s a build pack for Heroku that is on Github. Just point the Heroku command line tool to the build pack on Github and it figures out what needs to be done. Digital Ocean also has an option that’s using Docker. Docker container probably uses any number of cloud hosting – Amazon, Azure.
[00: 25:35] – Swift 4
They’re expecting that this is going to be the first real stable build of Swift. If 4.0 is a stable build as people are expecting, that could be a really big deal for Vapor. You can see enterprise-level applications. They’re talking about implementing that next year. It could lead to a full-stack Swift environment. We can see an environment where you have a full-stack that has no HTML, no CSS, and no JavaScript. It’s just all Swift and possibly XML.
Picks
Bob Snyder
Andrew Madsen
Jaim Zuber
iPS 208: Build Special 2: Visual Studio Mobile Center with Karl Piteira This episode of iPhreaks features Andrew Madsen, Jaim Zuber, and special guest Karl Piteria. Karl is on the show today to discuss Visual Studio Mobile Center. He is a Product Manager on the product and heading a small team of product managers who are looking at how app developers can learn from their app once it is on people’s phones.
[00:01:35] We’ve talked about the Mobile Center in the past, what have developers worked on since then?
There has been improvement in the dev apps portion, improvement in the continuous distribution portion, and an Android portion has been released. There has also been work done on the link between builds tests and attributes. Now you can ask for an automatic test from the build definition on Mobile Center and launch an application and make sure that it doesn’t crash.
[00:3:54] If I want to set up continuous integration (CI) on my app, is this available for all three platforms? How do I start it up for a Native iOS app?
Yes. For a Native iOS app go to Mobile Center and create an app. Then, label the app iOS and label whether it’s Objective C or Swift.
[00:04:20] I want to run unit tests. Does it work out of the box based on the test target?
If your projects have unit tests defined, they will be run automatically.
[00:04:41] What kind of customization is possible?
They have been trying to simplify the process and have it where you can set it up quickly. People may want to set up credentials in a build process, but do not have it currently. They are working on that and will be released soon.
[00:05:50] What does your support for continuous deployment (CD) look like?
The point of defining a flow with Mobile Center is that you select a branch, set up a build test, and set up which distribution group will receive that build. This will automatically be sent once who is in distribution group is invited.
[00:06:38] Are you using HockeyApp still?
Yes, mobile center is HockeyApp. The future of HockeyApp is mobile center: they are merging the two.
[00:07:00] What are some things you can do to improve your process?
The big win is the time having your build actually delivered to the device, while having all that chain already set up. To set up a build with a signature and some start up tests defined can be done under five minutes. The concept for developers is to be focused on what you want to do with your app and learn about it quickly.
[00:09:45] So if I wanted to build every branch that started with Feature, how would I set that up?
You would have to set it up for each branch. They do not have definition yet for that.
[00:10:12] Does that affect cost?
It is right now a preview product. They have not yet communicated on the cost. At the moment it’s free.
[00:10:36] Does it affect how fast it runs?
There is a concept of capacity. Users might get throttled if there are a huge number of users at one time, but haven’t experienced that.
[00:13:37] Can you explain what a funnel is?
Funnels are, for example, a login process in an app where people go to a login screen. They enter their credentials and the login either succeeds or fails. Developers want to gather different types of information from this in order to solve the problem. They should know whether the user went to the login page or if they passed or failed validation. How many succeed or failed? Why did they fail? All these are things need to be learned because if users don’t get past the login screen, users may never use the value of the app. These analytics service give insight of what to address.
[00:16:18] How do we identify those things to the server so we can monitor?
As a developer, defining what you want to learn is key. The second part is instrumentation, which is done through the SDK. Once Mobile Center portal is built, all data that goes through the server can be collected.
[00:19:12] What kind of tools does Mobile Center provide for making sense of your data?
Charts and tables. Counting the event for time as well as users is provided. Does everybody do it or a few people do it often? A distribution of the properties is also provided.
[00:20:50] What kind of crash reporting tools does Mobile Center provide?
Integrate the crash SKD into the app. When the app crashes next, a notification will be sent to the developer. The crash is sent to the backend, where there will be counts, and the crash will be symbolicated. If it was built with Mobile Center the symbols are already there. There is also the option to upload symbols from other apps.
[000:22:12] You get counts?
On crash first decision you make is should you or not? Analytics of crash kicks in. Number of crash per user, per day, group the crash if they are the same thing, etc. Developer can start prioritizing what to fix.
[00:23:56] Why use Mobile Center?
We want to provide a unified experience where you define what you want to happen and get your information in one place. Save time, make lives of developers easier. When you can follow most of your process in one place. Making sure the tools provided will have uniformed experience.
[00:26:08] What’s next for Mobile Center?
They are customizing environments. They are working on analytics to bring much more segmentation. Analyze information through different angles, ability to be able to define scenarios with notifications based on different types of behavior, and push notifications.
Main energy that is being put in is looking at the cycle and seeing where friction could be further reduced to make it more useful.
[28:40] Is your vision for push notifications to make it as painless as possible for developers?
Definitely. The ideal is to have one starting line and add push and have it work.
Picks: Karl: Walking in the mountains
iPS 207 White Label Apps On this episode on iPhreaks, we have panelists Guilherme Rambo, Erica Sadun, and Jaim Zuber talk about White Label Apps, its technical challenges, and its advantages over web apps, etc. Don't miss this one!
[00:01:10] – Introduction to White Label Apps
This is an app that you built at one time but you skin different things for different customers. There are a lot of customers around that will build an app but they got different versions of the app that they distribute on behalf of their customers. Your controls have a lot of the same behavior in your app but the color is different, the icons are different, maybe there’s text difference.
[00:03:50] – Pre-built components
This kind of notion of pre-built components has been in the development arena, specifically, in Apple’s ecosystem for a very long time. When the app store first started, you could buy custom widgets, custom controls, and custom art.
[00:06:10] – Customization
Most of the companies have a very limited ability to customize. You can start up with things like changing the name of the app. You can change the icon. You can change the color scheme. You can change some text. You just solve the problem the user is going to deal with.
[00:12:35] – Technical challenges
For Erica, one of the biggest issues is going to be the customer ticketing process on tracking or the customer service process. Typically they’re calling the end owner of the app, which is not a very good solution. And you also have to support the businesses because those businesses have to support their customers.
[00:16:10] – Corporate Entity
If you are selling your apps to small realtors, you'll probably just manage everything yourself. You’ll do certificates, customer profiles. You’ll host it under your own app ID. But if you sell to bigger organizations, they might have their own Apple ID and want to keep it under their roof with their own Apple account. You need things like getting your own certificate with their Apple ID, getting provision profile, creating the app ID, going to iTunes connect and doing the same thing.
[00:22:15] – If-def approach
Typically what happens in most companies is your team leader goes, “Hey, we could sign a new customer. Let’s make the app. Let’s rebrand it. Let’s white label it.” The developers will shrug off their shoulders and say, “I don’t know how to do this so I’ll do something like creating an if-def for different texts.” That’s going to be a problem. But this is where a lot of people start.
[00:25:40] – Interface file approach
One approach is you could create your own tool to customize the apps. They are all the same app but there is one internal configuration file or database or whatever is different between them.
Developers run into problems on finding ways to build internal tool that will reach their configuration file and modify the app as needed. Most of the companies that have a mature platform they can just drop the configuration file and build a list of file that describes where the images are, what the texts are if they have any features that are turned on or off. Most companies can build a configuration file because they’ve narrowed down what problems they’re going to solve.
[00:35:30] – Saturation of apps
There has been a push back in apps. We got to a point where a lot of companies build apps that no one cared about. No one downloaded them. If they download them, they didn’t use them more than once. People can make a smarter decision if they really need an app. They’re not going to download the apps for every business out there. If you are running a business and have loyal customers, you can get them to order easily with their app by first calling in. That might work in some cases or you can be making an app for more than just one pizza place.
[00:40:35] – White label components vs. websites
Web sites are not going to do push notifications so if you need to get a hold of people or notify them of something important, you need to get them to order an app. Their user experience is going to be better. But there’s a lot of benefits for something that you don’t use very often for making a web app because web apps work on every platform. Anytime that you can take advantage of the specific hardware features like 3D Touch or Touch ID, you need an app because you can’t use them on the web yet. The Touch ID is also great for apps that need some level of security like a banking app.
Picks
Erica Sadun
Gee Rambo
Jaim Zuber
iPS 206: Build Special 1: Embeddinator 4000 with James Montemagno This episode is live at the Microsoft Build 2017 in Seattle with Andrew Madsen and Jaim Zuber. We have James Montemagno from the Mobile Developers Tools Team at Microsoft. Tune in and learn more about Embeddinator 4000!
[00:01:05] – Introduction to James Montemagno
This is James Montemagno’s third time on iPhreaks. He is a Principal Program Manager on the Mobile Developers Tools Team. He is a long-time Xamarin developer for almost 6 years now.
[00:01:55] – What is it that you wanted to talk to us about?
The Embeddinator 4000 is an open-source project. It falls underneath the Mono open-source. It’s a Github organization so it’s not under Microsoft branding. It’s been around for a while but the team re-tooled it in a way that every single iOS, Android, Mac, Linux, and Windows developers is going to love. Their goal is to bring .NET to every developer.
Developers still want to find a way of sharing code. There are a few ways to do it today. You can write a bunch of C++ but no one wants to do that. The Embeddinator has the ability to execute C# and .NET code anywhere. It enables every developer writing applications in any language to take a .NET library to write some business logic. And then, compile that through a tool into a native library that they can consume in Objective-C, Swift, Java, or C++ library.
[00:04:20] – C# library, not Xamarin-based
It’s not Xamarin-based so you don’t need the Xamarin toolkits. You could use Visual Studio 2017. It’s just a command line tool so you can run it on Mac or PC. You don’t need anything besides the ability to write a C# library. Run that into the Embeddinator, which would then give you a dynamic library if you’re just doing an Objective-C Mac OS app, or it would give you a framework for iOS.
[00:07:20] – How do you take a C# / .NET library and give it an Objective-C interface?
Each platform whether it’s Objective-C for Mac, for iOS, or Swift for iOS, will be able to create those specific libraries, which will go to their own tooling. Obviously, the syntax is different. There are some things in C# that don’t necessarily exist in Objective-C. So it has to be converted into a call block or maybe you’ll not write that type of code because you know you’re going to consume this library.
All the code is open-source on the Github page. You can think of it that it is going to provide the native interfaces and then, kind of P/Invoking into the compiled-up run time or the machine code that’s there.
[00:09:00] – Difference from Microsoft Windows Bridge for iOS
That bridge application is focused on iOS applications, specifically, on games. These games are brought over into to a UWP application. On the other hand, Embeddinator is very powerful for companies which are literally doing the same thing over and over again. This also allows collaboration with other teams. If mobile developers are calling their mobile API, they could just have one shared mobile API that’s being called across each platform.
The difference here is you’re not porting any application, you’re creating a common framework or a common element that’s going to be running natively on each platform. You’re first writing it in C#, and then, embedding it into each application.
[00:12:05] – Libraries and frameworks available
All of .NET is available to them. When they’re creating .NET libraries, Embeddinator supports almost everything in .NET 4.6, which is a large amount of .NET. It can be embedded into your applications.
[00:13:15] – What else is brought in?
What you’ll see inside of this framework is a bunch of registers and header files. The bindings that get created are all here. It will create the header files that will talk and communicate to that framework specifically. It's executing .NET code based on the device you’re running it on - ARM32, ARM64, i386, your simulators, x86, x64-bit.
[00:14:40] – Is there a reason you’re not using frameworks on MAC OS?
The team got a dynamic library that they’re working first but the plan is doing framework. They want to keep it simple and do frameworks everywhere. They’re also going to be adding Swift support, Java support for Android, C, C++, Linux support, and continuously putting it into more and more platforms.
[00:23:35] – Development cycle
The getting started is you have this library, run this command line, and then, drag and drop some files. That’s just day one. But you don’t want to do that over and over again. The command essentially says. “Run this Objective-C generation in this DLL. I want to create a framework. It’s iOS. Put it in this directory.”
You have 2 IDE’s open. Visual Studio for Mac and Xcode. When you’re writing your C# code, you’d write that in Visual Studio. In each of the libraries, you can have a post-build step. When you hit compile, you can essentially run this command line. The output directory would be your Objective-C, iOS or Mac application. And then, it’s available immediately inside of Xcode.
[00:25:10] – Debugging
At this point, you’re not going to be debugging across Xcode. Think of it like you’re debugging another framework. Think of creating a library but then, create a unit test around it. You can test it. You can write a console application. You can write a Xamarin application that is a bunch of buttons that you click to test the Native functionality.
[00:26:15] – How to integrate with Visual Studio?
It’s not yet super integrated into Visual Studio, where you can right click and say Export to this.
When you go to the Github page, there are walk-through tutorials – Getting Started with Mac OS, Getting Started with iOS, etc. There’s a download package that you have to install that will install all the Embeddinator and all of the requirements. It requires Mono, which is the .NET runtime on Mac. But when you install Visual Studio for Mac, it will bring it in. That’s all you really need. The Embeddinator 4000 is literally inside the /Library/Frameworks/Xamarin/.Embeddinator-4000. And then, you start executing some commands, which are documented.
[00:27:50] – Microsoft announcement with regard to Embeddinator
The Embeddinator is available. It’s part of the Mono project. Microsoft is actively working on it. Core members of the Xamarin team are working on this tooling to make it a great experience. Give it a try. Essentially, it’s under development but it’s a v1-type of release for Mac, iOS, and Objective-C, Swift applications, etc.
[00:31:15] – How large is Mono
There is an advanced optimizer and linker so you’re not bringing in the entire Mono runtime or the entire .NET installation. The actual Mono runtime is extremely small. It’s usually in a few MB. But on different devices, there’s a difference in runtime because they’re executing code a little bit different. And it’s not as big as Swift.
[00:32:30] – Microsoft as open-source supporter
The Embeddinator project started under the Mono organization. The license should be under MIT license. It’s copyright Microsoft, technically. The project is also accepting external contributions.
[00:34:45] – How to fix a bug
When you go to the Embeddinator source code, it’s all just C# code. There’s probably going to be command line and build things. There’s documentation to getting started.
For iOS developers, if you can read Swift, you can read C#. It’s still object-oriented, still, have classes and methods.
Picks James Montemagno
Andrew Madson
Mac Store Problems. On this episode of iPhreaks we have panelists Gui Rambo, Erica Sadun, Andrew Madsen, and Jaim Zuber. Check in to hear the crew talk about Mac store problems and a bit about the differences in developing Mac OS apps vs iOS apps. Gui Rambo gives us some insight about writing Mac OS apps from iOS apps and the panel digs into the potentials of Apple TV. Don’t miss this one.
Gui How did you get started converting iOS apps to Mac? Gui talks about being a fan of Mac and being a Mac user and when the iPhone started having apps he didn’t have an iPhone so he started developing for Mac. Soon after he started developing for iOS as well.
What are some examples of apps you’ve converted? He talks about the most famous being the WWDC app. He is in the process of working on it now. He talks about how the code is old and clunky, being that he wrote it on Swift 1. It was inspired by Apple’s WWDC app. Gui reversed engineered it and brought it to the mac. Instead of looking at source code Gui reversed engineered the application using HTTP proxies and looking at what API they were using. He found that it was mainly JSON hosted on AWS storage, and the app downloads them and parses them and that’s about it. Erica adds that the application has been a huge contribution to the development community and for WWDC attendees.
Can you tell us about your design philosophy? Gui mentions that it depends on the app itself. Sometimes the iOS app is a companion to the main Mac application while other times it’s the opposite. In some cases apps are independent of each other. In most cases the iOS is just a remote version of the main Mac OS app. Sometimes the Mac OS app lacks. Gui likes to see both apps to be full of functionality.
What apps are less featured on the Mac vs iOS? It’s most common that there is no Mac app at all. Using features of the iOS app in many cases will only have a web browser version for the Mac. In many cases this is happening because it’s harder to develop apps for the Mac OS. The frameworks are older, the foundation is the same, but taking a Mac OS app and making an iOS app isn’t easy or simple.
What are your thoughts about developers and the decision of publishing outside the app store? Gui mentions that he sells an app called Browser Freedom that he sells online as well as in the app store. The application uses a set of rules to decide which browser it should open, along with other features. He decided to do both to find which would sell more. Despite that Apple takes 30% of sales from the app store, he is selling much more from the app store. Another consideration is if the application was made before sandboxing it may not work and may restrict some features you may want to add that won’t work. Applications for Mac OS must be sandboxed, making it so they are not allowed to write on the disk. A common issue that comes up for apps would be any application that has a built in file browser. In many ways Mac OS apps are more restrictive than iOS apps
Is it fair that Mac developers are moving away from the Mac App Store? Gui talks about it being fair. If the Mac App Store is lacking features then it make sense for developers to move away. One thing that is missing is the Test Light system. The Test Light System is something that Apple provides for the iOS store that allows the developer to create a beta of applications via invites before the full release. The Mac App Store still does not have this feature. The app store lacks features more for the developer than it does for the user.
Can you tell us more about upgrade pricing? Upgrade pricing has been an important price model since software exists. You pay for the application initially and then over time if you want to upgrade or add feature you pay some small price for that. Allowing for cashflow from existing customers. Some developers found ways around it by making new versions a completely new app on the store but it’s still very messy.
Whats the theory behind Apple pushing subscriptions? Gui talks about how subscriptions have a different psychological effect on people. Having to pay for something monthly or annually is different from thinking about a single purchase. Many people are not willing to go through that sort of commitment. Apple isn’t in the business of selling software. Subscription as a pricing model isn’t necessarily part of the future that Apple intends to have. Their focus is to sell the hardware and would be just as happy to see applications for free.
Is Apple not supporting upgrades part of Apple philosophy? Gui says that if you think about Apple’s philosophy, they always have thought of the users first. Apple would like to have their customers pay once for software but, Gui states that he thinks that there may be some technical issues that involves upgrade pricing to make that it available. Erica adds that it’s on the record that Apple has said that adding upgrades to the App Store would take major engineering. Gui adds that the Apple App Store is an old system that was designed based off of an older iTunes system and would be hard to implement changes on.
What about discoverability. Gui talks about developers deciding to develop for iOS just due to the greater number of people using iOS and mobile being the future. He adds that you can make plenty of money making Mac OS apps as long as it’s well done and polish and if you’re giving a niche market something it really needs. Apps don’t get famous like they do for iOS. You have to find your market and make sure it’s niche enough. There are often too many apps of the same category that do similar things.
Ugly apps that make it and word of mouth marketing. Gui talks about how the icon can be a game changer if it’s not good. Apple users tend to find how polished an app is to be vital to if they use that. Erica adds that there are some cases where ugly apps make it, but generally because they have great features and tend to get traction by word of mouth, specifically for Mac applications. iOS tends to push apps in places like spotlight, while on Mac OS, applications aren’t pushed nearly as much, needing word of mouth to get traction. There are many tools that become very popular despite lacking a polished graphic UI, some being command line tools. These tools make it because they actually solve a problem.
If someone is trying to sell something in the Mac App Store, what else is there to consider? Erica adds that integration between the hardware for application becoming something that people expect. The Mac application has become almost a bonus to the iOS app, and people tend to look for their iOS apps to have versions on the other platforms. Gui adds that he would like to have applications on the Mac like Youtube. He wishes that Apple would make it easier to make iOS counterpart Mac applications. There are many apps that could be imported without that much work. The underlining framework can sometimes be very similar.
What about the Apple TV? The exception may be Apple TV. It tends to mainly work for content consumption but allows for things like games. Gui adds that he tried coming up with an Apple TV app but couldn’t manage to think of one that would work. Eric mentions that Apple TV could work really well with applications revolved around parties, where it doesn’t necessarily need interaction but has some sort of features that work well while the owner has company. She also mentions that Apple TV could use a check ins feature, where the TV connects more with the Health Kit or todo reminders or personal coaching features. She suggests it could be a great win for Apple. Gui adds that the Apple TV would also do well with multiple user support where people in the room can all use it together in ways at once. Everyone bounces ideas back and forth about ways to use Apple TV for things like biometrics and other ways Apple TV could tap into integration with other Apple platforms. Apple TV adds a potential to get users away from the computer.
Picks Gui Watch WWDC sessions on WWDC App Simpholders
Erica The Rithmatist Brandon Sanderson
Andrew The Living Computer Museum in Seattle
Jaim Blog post on the four major frameworks of Swift
Underpass with Jeff Johnson On today's episode, Jaim Zuber, Andrew Madsen, and Guilherme Rambo talk about Underpass with Jeff Johnson. Jeff is a Mac and iOS developer with more than a decade of experience as a software engineer. He recently released an app for Mac and iOS called Underpass. Tune in to learn about it!
What is Underpass? As Jeff puts it, Underpass enables encrypted chat and file transfer between two devices. The data you transfer is encrypted from end to end.
It does not even rely on any third party. You also don't have to login to a server. The app allows you to communicate directly on any network.
Inspiration Kicks Off When Apple made the change from iTunes to the iCloud as the preferred way of setting up iOS devices, a lot of the functionality was removed. The iTunes features were removed and if you're like Jeff and don't rely on the cloud, this could be a bit frustrating.
Jeff wanted an easier way to bring data from his Mac to his iPhone. This was his motivation to write the app but it's grown from there.
Writing Your Own Code Jeff could not use the higher level API or S-URL connection because they deal with existing center protocols. He had to go down to a lower level core foundation API, CS Stream. Jeff had a lot of experience with this level when he was a lead developer at Airfoil so it wasn't too difficult for him.
Jeff did not write his own encryption, he used Common Crypto. It offers the same functions on Mac and iOS on one shared code base. Jeff warns against trying to write your own crypto. You'll have problems with export compliance and you'll have to go through a compliance application process.
Objective-C Versus Swift Jeff used Objective-C versus Swift in new projects. The compilers are there, they aren't going to be removed, they are always going to work and the language is not changing. In the podcast, Jeff discusses why it's a good idea to wait a while longer before switching to Swift due to it's changing nature.
To learn why Jeff decided to build Underpass's UI entirely in code download and listen to Underpass with Jeff Johnson.
What are your thoughts about Underpass with Jeff Johnson? Leave us a rating and review if you enjoyed the show. We would love to hear from you!
Picks: Jaim: The Trans album by Neil Young
Gui: Apple Watch, Hacking with watchOS book
Jeff: Manifold: Time by Stephen Baxter
Andrew: Neil Young Unplugged album, Techmoan on YouTube
Are you up for the 100 Day UI Challenge with Mark Moeykens? Mark has been developing since 1996, and works mostly on backend and UI. He got into iPhone development few years ago. Recently, he took up a challenge to get better at UI. Tune in to know how you too can join!
“All the information you see on the UI don't have the same value. Some of them are more important than the other pieces, and you want them to stand out more.” -Mark Moeykens
Today on iPhreaks Show, Andrew and Guillherme discuss Swift TDD with Jon Reid. Jon is the author of Quality Coding blog, and has been doing test-driven development for some time. He appeared as guest in episode 116, where he talked about TDD and testing. Tune in for more classic insights about it and about why you should not take Apple sample code literally!
On today's episode, Jaim, Erica, and Andrew discuss Japan, Sequences & Collections with Soroush Khanlou. Soroush is an iOs developer from New York City. He served as one of the speakers in try! Swift Conference in Japan. Also, he is a blogger and the co-host of a popular software engineering podcast titled Fatal Error. Tune in!
Andrew just bought a NextCube so the iPhreaks thought they'd talk about the NextStep platform and how it still influences iOS and Mac development. Tune in!
On today's episode, Jaim talks about Sourcekit and SourceKitten with JP Simard. JP has been working with Realm for about three years. He appeared as guest on episode 104. Listen to this exciting episode on Apple's SourceKit and learn how SourceKitten can make your work easier!
On today's episode, Jaim and Erika discuss When Your App Becomes a Company with Matt Ronge. Matt is the cofounder of Astropad, a drawing app that works well on an iPad. He has appeared as guest in episode 113, where he talked about launching an app. Tune in and learn how they developed Astropad and how it evolved into a company!
On today's episode, Andrew Madsen and Jaim Zuber discuss Visual Studio for Mac with Omar Khan. Omar runs the product marketing team for their developer tools at Microsoft. There has been a lot of talk about the exciting new release. A preview is now available for developers. Tune in to learn more about it!
On today's episode, Jaim, Andrew, and Gee discuss Unity for iOS with Martin Grider. Martin is the owner and lead developer of Abstract Puzzle, LLC. He is lately into iOS freelancing and has a blog at chesstris.com. Stay tuned to learn more about what is new with iOS and what Martin currently enjoys doing!
On today's episode, Jaim and Andrew discuss with Keith Ballinger. Keith is the Director of PM in Microsoft's Mobile Development Tools Division, and currently focuses on the different cloud services from mobile developers. He's also had a series of startups before he came to the company. Stay tuned to learn about his projects, which include Microsoft's Visual Studio Mobile Center!
On today's episode, Jaim and Guilherme discuss Linea with Dustin Bruzenak and Troy Gaul from Iconfactory. Dustin is a programmer and consultant at Iconfactory, while Troy is the primary developer for Linea. Both have been in the industry for many years. Tune in to their exciting talk about developing and releasing the incredibly simple drawing app!
On today's episode, Andrew and Jaim discuss Take Manhattan III with Kasey Uhlenhuth. Kasey hails from Louisville, Kentucky. She is a program manager of .NET and the visual studio team at Microsoft, specifically on Roslin. Stay tuned to learn more about what she is up to as well as her expertise in programming.
On today's episode, Andrew and Jaim discuss Core Data. Core Data is now easy to use as a result of the recent changes in Xcode 8 and iOS 10. Learn what it is and understand how you can get the most out of it.
On episode 191 of iPhreaks, Andrew and Jaim discuss Take Manhattan II with Sam Guckenheimer. Sam is the Group Product Planner of the Visual Studio Team Services of Microsoft. In the last 6 years, he has been working on Microsoft's transformation from Agile to DevOps. Tune in to their exciting talk, and learn about it!
On episode 190 of iPhreaks, Andrew and Jaim discussNotifications with Paola Mata. Paola is an iOS Swift Developer and organizer of NYC Tech Latinas. Tune in to learn more about notifications and how she got interested in it.
On episode 189 of iPhreaks, Andrew and Jaim talk to Xamarin Founder Nat Friedman in New York City during Microsoft Connect(). Nat talks about his new role and about creating Visual Studio Mobile Center. Tune in to iPhreaks Take Manhattan - Nat Friedman.
On episode 188 of iPhreaks, Jaim Zuber and Anastasia talk about iOS Security. Anastasia has been doing a lot of talk about it. It is a topic which is often thought that's been covered enough but not quite in reality. Stay tuned and learn how secure iOS Security really is.
On episode 187 of iPhreaks, Jaim Zuber and Andrew Madsen talked about Giving Back and helping new comers. Andrew just started on a new job as an iOs instructor in an iOs bootcamp in Salt Lake City. Learn more and be excited as you listen to Andrew's venture in the reaching out to novice developers.
On episode 186 of iPhreaks, Alondo Brewington, Jaim Zuber, and Andrew Madsen discussed about Year End Review and Predictions. They just thought it's a good idea to look back on what happened throughout 2016 in iOs and to make predictions for 2017 hoping for good things. Stay tuned to what they have to say!
Introduction
1:20: React Native
7:15: Context of iOS app
9:50: Developing in React Native
18:45: JavaScript patent
29:30: More concerns with React Native
Picks: How to Disagree by Paul Graham (Ariel)
Bullet list of what real programmers are (Ariel)
Chainsawsuit comic (Ariel)
Hired.com/iphreaks
Introduction
1:05: Deep linking
12:15: Examples of deep linking
15:15: Direct to App Store
24:00: App delegate
27:30: Success stories
31:00: App without website
Picks: Amazon Echo (Rod)
JMP (Alex)
Bose headphones (Alex)
Fellow Coffee (Alex)
hired.com/iphreaks
00:16 Intro to David Carmona from Microsoft
1:46 Overview of .NET
8:39 .NET Core open source vs. .NET
14:09 C# language and .NET platform
18:33 Async/Await
25:26 Visual Studio and IntelliSense
27:42 Live unit testing
34:52 Getting started in .NET
36:51 Visual Studio for Mac and .NET for iOS development
Picks Kasia’s Deli (Jaim)
Cadiz, Spain (David)
Donovan Brown demo on DevOps (David)
Hired.com
Introduction
2:30: Moving from Swift 2.0 to 3.0
7:50: One True Brace
14:30: Long declarations
18:00: Structure vs. comment
24:20: Hardest style decisions to make
30:50: Importance of the team adopting a style
37:45: Tools
Picks: EveryNoise.com (Jaim)
iOS Remote Conf (Charles)
Toggl (Charles)
SpamSieve (Erica)
Keyboard Maestro (Erica)
BetterTouchTool (Erica)
Hired.com
0:20: Introduction
1:00: Migrating from Swift 2 to 3
4:30: Problems with 2.3 migrations
10:40: Preparing for new version of XCode
14:15: Hesham’s development team
18:30: Migration walk-through
27:20: Suggestions to mitigate problems in the future
Picks: Quick testing framework (Hesham)
Bell’s Two Hearted Ale (Hesham)
Pastrami (Jaim)
Swift Check (Rod)
World Series Game 7 (Rod)
iOS Remote Conf (Charles)
Born to Win Seminar (Charles)
Hired.com
0:15: Introduction
5:45: Capabilities
9:45: Comparison to Apple
14:50: Who are the books for?
18:00: The user experience
23:15: Playground Book tool
Debugging experience
Picks: Postman Mac App (Andrew)
Turn Season Two (Rod)
Rod’s Blog (Rod)
Dark Matter (Ash)
Introduction
3:40: What is bootcamp?
9:50: Alternative to bootcamp
14:00: Interviewing
17:10: UI Kit
21:15; Marketing
26:45: What bootcamps mean for education overall
35:30: Variation between bootcamps
Picks: Salt and Sanctuary (Layne)
SCSI2SD (Andrew)
Macintoshgarden.org (Andrew)
For the Love of Spock (Andrew)
1:00: Introduction
4:20: How the language is written
12:30: Synthetic Sugar
15:30: New API Guidelines
21:15: Verbosity vs. Terseness
24:00: Successful Server Languages
28:30: Problems
32:40: Brand new startups
Picks: Swift (Paul)
BBS the Documentary (Jaim)
CleanCoders.com (Rod)
Swift from Two to Three (Paul)
Article on how we teach math (Paul)
Lockhart’s Lament (Paul)
If I Sleep for an Hour, 30 People Will Die (Paul)
Bust Out Solutions
1:00: Introduction
2:00: Swift Package Manager
3:30: GitHub Repository
13:40: X-code
19:00: Frameworks
22:30: Providers
24:50: Future road map
33:10: Contacting Marcin
Picks:
The Accountant (Rod)
12 Week Year (Charles)
Din Group (Marcin)
Project Distribution Test (Marcin)
Hired.com
1:25: Mobile Devops definition
Unique challenges
“It’s not just tools, it’s people in progress.”
4:30: Difficulty of mobile devops
7:15: Unit testing
14:50: HockeyApp
27:00: Stories
30:00: Experiments
32:40: Feature Flags
Picks:
Pappadeaux (Jaim)
The Lean Startup (Charles)
Lyft (Charles)
BMW (Donovan)
Air hockey (Donovan)
HockeyApp (Josh)
Donovan on Twitter
1:00: Introduction
3:50: Xamarin
9:15: Same-day support
12:30: Standard library
16:00: Development process
22:40: Sharing code
28:00: Xamarin Forms
34:40: UWP: Universal Windows Platform
39:50: What’s new in C# 7
Picks: Clarks Shoes (Jaim)
James on React Native Radio (Charles)
STK Atlanta (Charles)
Dot.net (James)
Monorail Espresso Seattle (James)
Merge Conflict podcast (James)
1:15: Introduction: Chris Eidhof
2:05: Structs in Swift
3:55: Problems that can be solved
8:15: When mutating can be useful
11:15: Benchmarks
15:30: New Data and Updates
23:00 Writing simple code
27:00: ObjectiveC.io
33:00 Other projects
Picks: The Retro Mac Cast (Andrew)
68KMLA.org Forums (Andrew)
Twin Cities Startup Week (Jayme)
Eli Document Picker (Rod)
Functional Swift (Rod)
Michael Vey Fall of Hades (Chuck)
Webinar Jam (Chuck)
Get a Coder Job (Chuck)
Kyle Fuller (Chris)
Links: Hired.com
Chris on Twitter
1:17 Justin Grammens Introduction
3:59 Arduino Open Hardware Platform
11:50 Raspberry Pi
14:07 Justin’s Internet of Things course
24:41 Connecting to Data and Mesh networks
28:27 IoT and M2M
31:25 How to get started in IoT
36:57 Recent IoT projects
39:40 Inspiration for an IoT idea
47:54 IoT Mentoring
Picks Skillshop.me (Andrew)
SparkFun (Andrew)
DigiKey (Andrew)
Calmtech (Jaim)
Miss Peregrine's Home for Peculiar Children (Layne)
Pinewood Derby Track (Charles)
Raspberry Pi Amazon Echo (Charles and Justin)
iOS Remote Conf 2016 (Charles)
DevChat webinars (Charles)
Amazon Dash Button (Justin)
Links Justin Grammens Twitter
Justin Grammens LinkedIn
IoT Weekly
1:10: Introduction: Andy Rahn
6:20: Kotlin: What it is, who is responsible
10:50: Future of Kotlin
15:45: Benefits of Kotlin: Familiarity
19:20: Interacting with Java API
23:20: Kotlin vs. Xcode
Kotlin has many more features
Debugger in Android Studio difficult to use
25:20: Unit testing in Kotlin
26:10: Kotlin is stable
29:40: Swift vs Kotlin: Advanced features
37:25: How many are using Kotlin?
Picks: Skillshop.me (Andrew)
Dylan and Dustin Bruzenak episode (Andrew)
Freelance Remote Conference (Charles)
Webinars (Charles)
The Sword of Shannara (Charles)
Reactive extensions (Andy)
Smile Train Charity (Daniel)
Cocoaheads (Andy)
iOS 10 Messages apps and stickers (Andy)
Links: Hire.com
Andy on Twitter
2:45: Introduction * What Is Day One?
7:00: History of Day One
13:00: Development Flow
17:15: Advantages and Features of Day One
22:30: Syncing and Security
26:00: Mac App vs. iOS
Picks Airplane Jokes (Jaim)
RescueTime (Layne)
Skillshop.me (Andrew)
Suggest a Guest (Charles)
iPhreaks Facebook Page (Charles)
ScheduleOnce (Charles)
2:00: Apple Event - Overview * Primarily about iPhone and Apple Watch * For iOS developers and iPhone users
4:15: Announcements
11:45: Apple Watch
18:00: Education
19:30: Nike Plus Model (Apple Watch)
21:40: AirPods
26:00: Next Apple Event
27:00 MacBook Pro
28:50: iPhone
Sponsors * Hire.com * Qbserve
1:28: Tyler McGinnis Introduction
2:15 React Native
4:37: Cross Network Frameworks
11:20: The Experience of Going From iOS to Android
16:20: Andy Matuschak Tweet
17:05: Basic Building Blocks
21:17 Reducers
23:15: Downsides of React Native
26:45: Proper Threading
30:58: Route Transitions
36:15: Testing a React Native Application
40:12: Facebook’s Goals with App Development
Picks Cannery Row by John Steinbeck (Jaim)
No Man’s Sky (Layne)
Remember the Titans (Charles)
Dan Abramov - Live React: Hot Reloading with Time Travel (Tyler)
React.js (Tyler)
Links: Tyler on JavaScript Jabber
Redux and React With Dan Abramov
JavaScript Core With Cesare Rocchi
DevOps Remote Conference
NoSQL Remote Conference
1:50 - Introducing Simone Civetta
Blog
Frenchkit Twitter
2:16 - Automated Code Metrics in Swift
4:06 - Strategies to Determine Code Complexity
6:17- Adding a Language
7:28 - Why Is Cyclomatic Complexity Important? How Can We Use This Information To Improve Our Code?
11:02- Difference Between Cyclomatic Complexity and End Path Complexity
13:40 - Using and Understanding Different Values of Cyclomatic Complexity
15:10 - Automating The Process
16:38 - Integrating Metrics Into A Complete Dashboard
18:12- Technical Debt Metric
21:16 - Stressing About Metric Values
25:50- Impact Of The Community on Swift’s Tools
27:55- First Steps To Evaluating Code
30:15- Using Code Climate
31:20 - Using Hound
33:30- French Kit Conference
Picks: Slide Deck Link (Jaim)
The Hero of Ages: Book Three of Mistborn by Brandon Sanderson (Layne)
Wood Badge Scout Training (Charles)
Boy Scouts of America (Charles)
Postal (Simone)
01:36 - Orta Therox Introduction
01:56 - CocoaDocs
03:06 - CocoaDocs vs CocoaPods
04:22 - Documentation Generation
08:49 - Setting Up CocoaDocs in a Private Repository
10:17 - Metrics
13:45 - Package Management Support
15:34 - CocoaDocs History
17:17 - Scaling Challenges
19:32 - Artsy
21:18 - Working with React Native
24:39 - Is CocoaDocs similar to projects that are available on other platforms? Effect on Swift Going Cross-platform
27:08 - Paying For Hosting
30:12 - danger
Picks
01:58 - Natasha Murashev Introduction
02:31 - Protocol-Oriented Programming
03:49 - How Protocols Were Used Prior to Swift; Benefits
08:12 - Benefits in Regards to Testing
09:03 - Protocols in Swift vs Objective-C
10:18 - Downsides/Pitfalls When Using Protocols
13:04 - Associated Types and Type Erasure
17:02 - Keeping Code Clean
21:22 - Does protocol-oriented programming change the architecture of your apps substantially?
22:06 - Structs > Classes
25:13 - Protocol-oriented Programming Code Examples
27:05 - Changes With Swift 3?
28:03 - try! Swift
Picks
01:47 - Pokémon GO & Niantic
02:19 - Augmented Reality vs Virtual Reality
03:42 - Game Objective: How it Works
07:58 - Location Data
10:11 - Cloud and Backend Service Issues
11:49 - Do bugs matter?
15:14 - Content vs Technical Execution
19:59 - The Success of Pokémon GO and The Game Ecosystem
23:09 - Augmented Reality Awareness
Picks
01:33 - Boris Bügling
02:20 - The State of Cross-platform Swift
04:45 - Tooling
06:46 - Frameworks
10:24 - Use Cases in Production?
12:10 - Other Uses for Cross-platform Swift
19:04 - CocoaPods; Installation
23:59 - Distributing Command Line Tools with Swift
26:48 - Using the Swift Package Manager
28:44 - ThisCouldBeUsButYouPlaying
29:45 - Generating Playgrounds for Swift Playgrounds on iPad
Picks
All Remote Conferences 01:59 - iMessage vs SMS (Short Message Service)
04:31 - Programmers and iMessage
06:14 - Standalone Apps; Games?
08:39 - Group Messaging
10:27 - Stickers
14:10 - Maps
16:43 - Extensions
26:31 - VoIP (Voice over IP)
27:04 - Security/Privacy
Picks
01:13 - Veronica Ray Introduction
01:47 - Dependency Injection
02:41 - Decoupling Code
03:39 - Local Reasoning; Testing
04:45 - Mocking in Swift
Dependency Injection (Cont’d)
15:36 - Well-done Mocks
18:03 - Resources
Picks
00:58 - Amir Rajan Introduction
03:08 - Building A Dark Room
07:14 - Marketing the Game
23:40 - Earning a Sustainable Income
29:03 - Amir’s Developer Experience
33:22 - Reviews
37:05 - The Iterative Aspect of Building an Application
Picks
01:45 - Evan Stone Introduction
02:38 - IoT (Internet of Things); iOS & IoT
06:48 - Panelist IoT Device Experiences
14:00 - Near Field Communication
17:06 - Getting Started: Devices
21:35 - Starting Projects
28:19 - Threshold of Devices
33:05 - Security
38:57 - Core Bluetooth Work Processes
Picks
Check out Newbie Remote Conf!! 01:06 - Mark Dalrymple Introduction
01:58 - Debugging, Troubleshooting, and Performance Tuning
02:40 - The Universal Troubleshooting Process
10:32 - Mark’s Favorite Bug
15:48 - Debugging with Others
18:02 - Bug Reproduction
20:40 - Chuck’s Favorite Bug
25:31 - Specific Tools
30:55 - Testing
36:28 - Tracking
39:10 - Code Review
42:07 - Resources for Getting Better at Debugging
Picks
This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Olivier Bloch of the Microsoft Azure IoT team about the Internet of Things and the Azure IoT Suite.
Resources
Picks
01:05 - Matthew Henderson Introduction
03:04 - Azure App Services
04:27 - Cross-platform Options
05:05 - Getting Started
07:13 - APIs
09:34 - Azure Mobile App Engagement
11:51 - HockeyApp and Xamarin
12:52 - Data
16:49 - Writing Your Own Backend Using Azure
19:22 - Security
29:37 - Use Cases
33:01 - Testing
Picks
A special discussion about what’s already transpired out at WWDC 2016!
Picks
01:22 - Hopes and Wishes
16:18 - iOS 10, Swift 3.0
19:43 - Wearables
21:53 - Apple TV / tvOS
24:56 - The App Store
26:41 - CloudKit
28:46 - Firebase
Picks
01:04 - Ryan J. Salva Introduction
02:08 - Cordova
05:19 - Hybrid; Native Applications
11:58 - Code Reuse and Sharing
16:01 - Performance
25:32 - Update
29:36 - Performance (Cont’d)
37:11 - The Development Process
Picks
This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Nick Gerard and Salmaan Ahmed of the Windows Bridge Project aka Project Islandwood.
Picks
01:06 - Scott Hanselman Introduction
02:23 - Managing Diabetes
13:14 - “Closed-Loop” System
20:16 - OpenAPS
23:00 - Monitoring
26:37 - The Current State of Systems
28:44 - What can people do now?
34:56 - The Future
37:37 - Wearing Devices
Picks
This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Thomas Dohmke of HockeyApp and the evolution of Interactive C#. You can follow him on Twitter, or see what he’s done over on GitHub.
Picks
Tesla Model 3 (Thomas)
01:06 - JP Simard Introduction
01:47 - Getting Started with Cross-Platform Development in Swift
02:57 - Challenges
06:41 - Foundation
09:36 - Writing a Swift App on Linux
12:02 - Docker
14:26 - The Virtual Machine and Xcode
18:24 - The Swift Build System
21:10 - Buck
22:06 - Android
27:30 - Foundation (Cont’d)
30:10 - Cross-Platform Swift and Realm
Picks
The Phantom Radio (Andrew)
For Whom the Bell Tolls by Ernest Hemingway (Jaim)
Flixel: The Case for Pricing Parity for Desktop and Mobile Apps (Alondo)
The Largest Ever Analysis by Film Dialogue by Gender: 2,000 Scripts, 25,000 Actors, 4 Million Lines (JP)
Episode 150 Celebration! Here’s to 150 more!
01:38 - Confession Time
08:36 - Show Highlights
11:58 - The Microsoft Build Conference
Check out Chuck’s Remote Conference Lineup!
Picks
Introducing GPUImage 2, redesigned in Swift (Jaim)
Ramen YAMADAYA (Jaim)
Candy Japan (Andrew)
MicroConf (Chuck)
GenerateWP (Chuck)
WordPress Membership Plugin (Chuck)
This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Miguel de Icaza of Xamarin and the evolution of Interactive C#. You can follow him on Twitter, see what he’s done over on GitHub, or visit his blog.
01:10 - iPhone
08:34 - FBI Case and Security
15:19 - iOS 9.3
17:44 - iPad Pro
22:40 - Apple Watch
24:10 - Apple TV
27:48 - ResearchKit and CareKit
30:49 - April 1st Intro
Picks
Uvex S0360X Ultra-spec 2000 Safety Eyewear (Jaim)
Andyy Hope: Swift: Selector syntax sugar (Andrew)
OLO - The First Ever Smartphone 3D Printer (Andrew)
Shapr3D (Andrew)
Taking a break (Chuck)
Facebook Groups (Chuck)
iPhreaks Show on Facebook (Chuck)
Check out iOS Remote Conf!!!
01:27 - Hardware
06:51 - Cloud Storage
09:00 - Tools
13:14 - Continuous Integration
18:11 - TestFlight
19:57 - Desk Setups
26:06 - Coding Music
30:28 - Miscellaneous Gear
Picks
Open Radar (Andrew)
Filing radars with Apple (Andrew)
Twin Peaks (Jaim)
Torrentz (Chuck)
Come see the iPhreaks at Microsoft Build Conference! (Chuck)
The iPhreaks are going to the Microsoft Build Conference! Come see the panel in San Francisco from March 29th - April 1st!
01:47 - Heiko Behrens Introduction
02:25 - Daniel Rodríguez Troitiño
02:46 - Pebble vs The Apple Watch
07:06 - The Pebble Development Experience
10:49 - Accelerometer Functions
11:48 - JavaScript; JavaScriptCore
17:42 - Device Capabilities
21:02 - Bluetooth
22:24 - Notifications
30:59 - The Developer Experience (Cont’d)
31:45 - Running/Sports Apps
33:46 - Apps and Screens/Watchfaces
39:56 - Getting Started with Building an App for Pebble
41:59 - Shipping an App that Allows Users to Download Other Apps
47:36 - Waterproof?
Picks
Ono (Andrew)
Mike Ash: Friday Q&A 2016-03-04: Swift Asserts (Andrew)
Smart Go (Andrew)
2016 Minnesota State High School All Hockey Hair Team (Jaim)
The Best Podcast Rap Video (Chuck)
PaintCode (Heiko)
Jetbrains: The unicorn Silicon Valley doesn't like to talk about (Heiko)
How to Move to Germany if Donald Trump is Elected President (Heiko)
Greg Wilson: What We Actually Know About Software Development, and Why We Believe It’s True (Daniel)
Ruby Rogues Episode #184: What We Actually Know About Software Development and Why We Believe It's True with Greg Wilson and Andreas Stefik (Chuck)
Check out and sign up for iOS Remote Conf! April 13-15th, 2016.
01:22 - Dominic Jodoin Introduction
01:46 - Emma Trimble Introduction
02:03 - Travis CI Background and Origin
06:27 - Travis CI vs Other CI Solutions
10:44 - Travis and Open Source
14:47 - iOS and Travis CI
16:04 - Testing and The Backend
21:17 - CocoaPods
22:41 - Support
24:53 - Pricing and Cost
27:33 - GitHub Integration
29:27 - Setup and Tool Support
Picks
Smoked Gouda Cheese (Jaim)
Smooch (Dominic)
Making voice calls in Slack (Emma)
The Most Important Object In Computer Graphics History Is This Teapot (Andrew)
Big John's Cajun Cheese (Andrew)
2016 Chocolate and Cheese Festival @ The Natural History Museum of Utah (Andrew)
01:13 - How Jaim and Andrew Got Started in Programming
05:33 - Learning How to Program
08:46 - Mentoring
15:37 - Lessons Learned Teaching New Devs
23:17 - Getting Kids Involved in Programming
Picks
Scratch (Jaim)
Hour of Code (Jaim)
CODE SAVVY (Jaim)
Prepo 2 (Andrew)
App Camp For Girls (Andrew)
01:04 - Travis Jeffery Introduction
01:36 - Clang-format, Clang-Tidy
02:00 - What is a linter?
02:40 - Uses
05:49 - Lining Up Method Perimeters
07:00 - Configuration
07:52 - Integration
08:50 - ClangFormat-Xcode
09:22 - Apple Support for ClangFormat
11:00 - Support for Swift
11:41 - Getting Started
14:13 - Code Style
19:21 - Continuous Integration Workflow
20:48 - Clang-Tidy (Cont’d)
Extra Resources
Picks
objClean (Andrew)
Swift-Clean (Andrew)
Friction Between Programming Professionals and Beginners (Andrew)
Help people that are new (Andrew)
Hopper (Jaim)
Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values by Robert M. Pirsig (Travis)
Stash (Travis)
A Guide to the Good Life: The Ancient Art of Stoic Joy by William B. Irving (Travis)
This week, we’re bringing to you a behind the scenes look at the man behind the mic and the guy who puts out over 5 hours worth of free audio content per week to support the development community: Charles Max Wood.
Long-time listener, Thom Parkin, asked Chuck if he would sit down and do an interview with him to describe all the interesting things he’s been up to and his goals for the future. In this interview, Chuck gives listeners a behind-the-scenes look at all of his podcasts, the DevChat.tv platform, RailsClips, his remote conferences and his upcoming book that will focus on tips for getting hired as a developer.
01:25 - Open Source Swift
06:13 - Is Apple going to continue being innovative?
09:46 - Will Apple gain or lose market share in 2016?
13:01 - The Apple Watch
16:33 - The iPhone
22:05 - iOS10
24:22 - Frameworks Rewritten in Swift
26:46 - Writing Objective-C
28:37 - Siri
30:50 - Force/3D Touch
32:39 - Apple Watch (Cont’d)
34:54 - Purchasing Options/Financing
36:04 - The App Store
41:24 - Apple TV
Picks
Tortuga Travel Backpack (Alondo)
Twelve South PlugBug World Charger and Power Adapter (Alondo)
Creating App Previews with iMovie (Andrew)
Know It All! (Andrew)
RushMyPassport (Chuck)
Trello (Chuck)
00:59 - Sean Stephens Introduction
Kyle Jessup Introduction
01:04 - Perfect
03:14 - The Lasso Language and Framework
07:10 - Lasso Parts => Perfect
13:42 - Developer Response to Perfect
15:32 - What Perfect Currently Consists Of
20:02 - Getting Started on Perfect
23:50 - Open Source, Licensing, and Contribution
28:50 - Swift on Windows
29:40 - Swift and the Backend Ecosystem
30:55 - Why Choose Swift?
33:48 - Performance
35:39 - Benchmarks
38:26 - Use Cases
Picks
Charlestown, SC (Jaim)
Amphibious (Kyle)
Pleiades (Sean)
SwiftyGPIO (Andrew)
Anker (Andrew)
Check out Freelance Remote Conf and iOS Remote Conf!
01:20 - Josh Brown Introduction
02:23 - Why Parsing JSON in Swift is Tricky
03:53 - Basic Approaches
06:11 - What do you do if it doesn’t work?
07:59 - Libraries to Parse JSON
09:06 - Testing
13:14 - Libraries (Cont’d)
14:07 - The Pyramid of Doom
16:15 - Guard
18:34 - Encoding
19:17 - Writing a Book
21:58 - Parameters
24:42 - typealias
26:34 - App Architecture
27:37 - Model Mapping
28:41 - Handling Arrays
29:33 - Handling Nested Data
30:47 - Resources
Picks
PlayNow (Andrew)
VIM Adventures (Andrew)
Mondo (Andrew)
Eat a healthy snack (Jaim)
Honeybadger (Chuck)
New Relic (Chuck)
Ash Furrow: MVVM is Exceptionally OK (Josh)
Coupon code for 10% offParsing JSON in Swift: iphreaks
iOS Remote Conf will be from April 13th - April 15th. Get your ticket (or submit a CFP!)
Check out Freelance Remote Conf!
Get the top 10 episodes of iPhreaks! Text IPHREAKS to 7656263464.
02:23 - Swift is Open Source: Why?
05:59 - Running Swift on Linux and Raspberry Pi
08:40 - Benefits of Running Swift as an Embedded Program
10:50 - Is this a different Swift?
11:35 - Cross-Platform Approaches
13:27 - What is included in Open Source Swift?
19:00 - Vs CocoaPods and Carthage
20:38 - Building and Installation
21:30 - IDE Integration; Opening Things Up with Xcode
22:26 - Developing on GitHub
24:56 - Downsides to Open Sourcing Swift ?
26:47 - Benefits of Swift as a Server Side Language
28:01 - Linux Support
29:21 - Are we going to see Apple support other efforts?
34:37 - REPLs (Read, Evaluate, Print, Loop)
Picks
Alexandros Salazar: The Ghost of Swift Bugs Future (Jaim)
Andrew Madsen: Swift on Raspberry Pi (Andrew)
Swift Sandbox Open Source Newsletter (Andrew)
IBM Swift Sandbox (Andrew)
Nike+ Running (Chuck)
Run 10k (Chuck)
Pebble Time Steel (Chuck)
AfterShokz Bluez 2 Headphones (Chuck)
MyFitnessPal (Chuck)
This episode is from Ara T. Howard’s talk at Ruby Remote Conf 2015. You can watch the full, unedited presentation, Program Like You Give a Damn, on YouTube at your convenience.
We, the iPhreaks Show panelists (And, Mandy!), hope you had a very happy holiday season.
01:20 - Neal Ford Introduction
02:16 - Efficient Engineering Practices for Software Projects
08:42 - Feature Branching
12:13 - Bad Things About Feature Branching
17:02 - Trunk Based Development
24:10 - Continuous Integration (Cont’d)
26:58 - Hypothesis-Driven Development (Experiment-Driven Development)
32:08 - Pull Requests
35:32 - Feature Branching (Cont’d)
40:32 - Implementing Feature Toggles
44:47 - Automatic Machine Provisioning
49:15 - Consulting Judo - Michael Nygard
54:28 - Eliminating Pain Points; Automation & Delegation
01:00:33 - The Out-of-town Consultant Effect
Picks
Apple TV (Jaim)
Pebble Time Steel (Chuck)
iOS Remote Conf (Chuck)
LaunchDarkly (Neal)
Grasp (Neal)
Check out JS Remote Conf and Freelance Remote Conf
Submit a CFP for iOS Remote Conf!
01:43 - Jeff Kelley Introduction
02:39 - The Apple Watch (Overview)
03:33 - How do people decide if they need a watch app?
04:53 - Notifications
07:16 - Interacting with an Apple Watch
09:42 - Complications
14:39 - 2.0 Changes to Making Apps
16:57 - Models, Controllers, Views
18:12 - Compatability
19:48 - Developing with HealthKit
24:41 - New Releases with 2.1
26:40 - Screen Sizes and Resolutions
28:36 - Should developers buy more than one watch to test apps?
30:52 - Minimizing Delays
33:00 - Resources
35:17 - Pain Points with 2.0 Development
37:30 - Phone/Watch Communication
40:39 - Testing
42:09 - Gotchas
43:20 - Memory/Performance Constraints
Picks
The Song Exploder Podcast (Jaim)
Erica Sadun's Blog (Andrew)
Hacking Atom to create a Swift IDE that runs on Linux and Mac (Andrew)
Authy (Andrew)
Serial Podcast (Chuck)
BADLAND (Jeff)
swift-evolution Mailing List (Jeff)
Rocket Fiber (Jeff)
01:06 - David Mauro Introduction
01:17 - Kevin Lord Introduction
01:54 - mattress
05:01 - Caching and Implementation
10:19 - WKWebView
14:55 - NSURLProtocol
20:56 - Can you use Mattress with other systems?
22:07 - Performance Implications
26:43 - The Conception and History of Mattress
31:20 - Swift, adoption, and will it work in Objective-C?
39:13 - What’s next?
Picks
How The Wrong Name Cost Our Startup $10,000 (Alondo)
Patterns (Andrew)
CodeRunner (Andrew)
Odesi (Andrew)
Recognizing what things are truly important (Chuck)
Cleaning your office (Chuck)
Mattt Thompson: NSURLCache (Jaim)
Josh Johnson: Intercepting Requests with NSURLProtocol (Jaim)
Swift.org (David)
@wkwebview (David)
Hackaday (Kevin)
Jamaica Ting (Kevin)
01:14 - Jared Richardson Introduction
01:31 - Andy Hunt Introduction
02:35 - Background, The GROWS Method
16:51 - Getting Things Done
19:18 - Transitioning to GROWS
23:45 - Experiments
28:39 - Blind Spots
30:22 - Pain Points and Benefits
35:52 - Where do I start?
43:30 - Can you do GROWS on a small team?
50:25 - Working on Stage 2 before Stage 1 is Done
54:06 - The Growth of GROWS
Announcement
Picks
Dan Wilson: Regarding Ground Rules For Collaboration (Jaim)
Saramonic SmartMixer Professional Recording Stereo Microphone Rig (Chuck)
Unboxing of saramonic smartmixer for periscope. #ufy (Chuck)
Clash of Clans (Chuck)
Derek Sivers: The /now page movement (Andy)
nownownow.com (Andy)
tonymacx86.com (Jared)
Get out from behind the keyboard (Jared)
01:02 - Felix Krause
01:17 - Fastlane
01:37 - The Background and Motivation of Fastlane
03:19 - Fastlane as a Collection of Tools
04:06 - Plugin Architecture
05:08 - Language = Ruby
06:29 - Nomad
08:32 - What do these tools help with?
12:23 - Using Fastlane for Continuous Integration
14:17 - Fastlane Growth and Community
17:14 - Contribution
20:29 - Integrating and Using Tools in Workflows
26:10 - Keeping Up with Changes
27:00 - Twitter + Fastlane
29:34 - Support and Community (Cont’d)
32:12 - Getting Started
33:10 - Difficulties and Gotchas
34:23 - Naming Tools
Picks
Swift Sandbox (Andrew)
Chris McVeigh (Andrew)
Brine your turkey (Jaim)
Tower (Felix)
what-terminal-is-felix-using (Felix)
Google Flights (Felix)
01:12 - MIKMIDI
02:17 - Adding Features or Changing the Way a Library Works in an Open Source Projects
04:49 - Deprecation
07:23 - Deprecation vs Replacing
09:37 - Semantic Versioning
15:14 - What is a breaking change?
17:51 - Choosing Issues and Bugs to Tackle; How long should it take?
24:31 - Maintainer Responsibility
26:33 - Being a Good Contributor; Documentation & Examples
31:01 - Using Badges
32:12 - How Travis CI Integrates with an Open Source Project
35:22 - Hosting for Open Source Projects
36:37 - Generated Documentation
39:07 - Licensing
40:56 - What’s changed in MIKMIDI? (Since Episode #57)
Picks
The Big Star Story (Jaim)
Searching for Sugar Man (Andrew)
Erica Sadun: A handful of Swift style rules #swiftlang (Andrew)
appledoc (Andrew)
jazzy (Andrew)
Toastmasters (Chuck)
01:02 - Fei Wang Introduction
02:24 - Validating an App Idea
03:54 - Identifying Your Market and Your Market’s Pain Points
08:52 - Networking and Communication
14:24 - Dealing with “Low-Tech” Clients
16:24 - Tools and Approaches for Prototyping
24:51 - The Value Proposition
28:07 - When Things Fall Through…
29:35 - Validating Your Marketing Channels
33:10 - Pricing
36:20 - Building a List
39:23 - Recap
41:34 - Validating You’re on the Right Track
Picks
Sketch Toolbox (Alondo)
Clever Coffee Dripper (Alondo)
You Must Remember This Podcast (Jaim)
FamilySearch (Chuck)
Relative Finder (Chuck)
The New Yorker Podcast (Fei)
Adblock Fast (Fei)
More Resources From Fei (Fei)
01:08 - WebRTC
03:23 - Advantages
04:51 - Approaching WebRTC
08:24 - Use Cases and Gotchas
15:51 - Capturing and Collecting Data
18:35 - Handling Errors
20:31 - Encryption
22:35 - Alternatives to WebRTC
Picks
Observable-Swift (Andrew)
CocoaHeads-SLC-Presentations (Andrew)
Karma (Alondo)
Eden Twig Tea (Jaim)
iphreakstopics (Chuck)
Geek Toys (Chuck)
ThinkGeek (Chuck)
Sonic Screwdriver (Chuck)
00:58 - Cesare Rocchi Introduction
01:55 - JavaScriptCore
04:15 - WKWebViews
21:58 - Hybrid Apps
27:48 - Performance and Upgrades
32:17 - Organizing JS Code with Exports
33:47 - Background Processes in JavaScript
Picks
Highrise (Chuck)
The Ionic Framework (Chuck)
Podcasting (Cesare)
Pick Up Podcasting (Chuck)
01:11 - Azam Sharp Introduction
02:14 - iBeacons
03:50 - Retail Adoption
05:26 - Apps and iBeacons
05:56 - Can you fake out an iBeacon?
07:12 - Why the slow adoption of iBeacons?
08:48 - Setting Up Beacons
14:21 - Precision
18:12 - Range
19:28 - Life Expectancy
21:08 - APIs and SDKs
30:35 - More Use Cases
Picks
Anker PowerPort 5 (Alondo)
FIRST LEGO League (Jaim)
UIStackView (Andrew)
Rewind (Andrew)
DMG Canvas (Andrew)
Allrecipes (Chuck)
LinkedIn (Chuck)
7 Minute Body (Azam)
01:10 - Janie Clayton Introduction
03:02 - iOS and Robotics
08:39 - System Architecture
11:24 - History
14:19 - Robot Design
18:52 - Why is robotics more complicated?
20:09 - Assembly
21:24 - Rewriting Objective-C Apps in Swift
27:25 - Design Patterns
29:21 - Connecting Worlds
30:52 - Realtime
33:44 - Open Source and GPUImage
Picks
ORSSerialPort (Andrew)
Honeycrisp Apples (Jaim)
NSScreencast Episode #188: App Transport Security (Jaim)
Rush Revere and the Brave Pilgrims by Rush Limbaugh (Chuck)
The Magician's Nephew by C. S. Lewis (Chuck)
MONEY Master the Game: 7 Simple Steps to Financial Freedom by Tony Robbins (Chuck)
GPUImage (Janie)
OpenGL ES Pixel Shaders Tutorial (Janie)
Programming Sucks (Janie)
01:04 - Jake Gundersen
01:38 - GameplayKit Framework Reference
03:56 - What’s the advantage of GameplayKit?
09:05 - Component Architecture
11:52 - ComponentKit | Component API
14:29 - Randomization
16:21 - State Machines
24:10 - Rules Systems
24:51 - Pathfinding
30:50 - Agents, Goals, and Behaviors
33:58 - Compatability
35:54 - Cross-platform Limitation
Picks
fastlane (Andrew)
Swift State Machines (Andrew)
Ryan Olson: Libraries Used in the Top 100 iOS Apps (Andrew)
Charles Max Wood "Upgrading From Yesterday" (Chuck)
Charles Max Wood: UFY 007: Standing Desk and Upgrading My Health (Chuck)
A Simple, Portable, Inexpensive Standing Desk Solution (Chuck)
Periscope (Chuck)
Ray Wenderlich: Introducing the iOS 9 Feast! (Jacob)
The Life-Changing Magic of Tidying Up: The Japanese Art of Decluttering and Organizing by Marie Kondo (Jacob)
01:19 - Paul Cantrell Introduction
01:41 - Siesta
07:31 - Is Siesta a specialized tool?
09:06 - Defining REST
10:35 - How Siesta Works
20:26 - Why use Siesta?
27:57 - Conversion
32:44 - Handling Requests
34:09 - Observers
35:51 - Checking
41:44 - Storing Resources, Caching
45:11 - Readability
Picks
Siesta README (Jaim)
Standing Up (Chuck)
SmartCells Anti-Fatigue Comfort Mat (Chuck)
Lifehacker Ikea Standing Desk (Chuck)
Periscope (Chuck)
Katch (Chuck)
The Complete Guide to the Alexander Technique (Paul)
Alexandros Salazar: The Ghost of Swift Bugs Future (Paul)
99% Invisible Episode #52: Galloping Gertie (Paul)
Proofs and Refutations: The Logic of Mathematical Discovery by Imre Lakatos (Paul)
01:15 - DevChat.tv: The App
03:51 - Basic Authentication
08:05 - Making a Universal App
09:24 - Possible Starting Points and Features
14:04 - Design and Finding a Designer
18:42 - Audio: Streaming, Downloading
21:23 - Recording
22:46 - RSS
23:21 - Is the DevChat.tv app idea overambitious?
24:38 - Animations and Transitions
25:27 - Core Data?
27:13 - Synchronization and Persistence
27:50 - Flagging Updates
29:00 - Social Integration & Subscription Content
29:59 - Security and Privacy
31:00 - Learning Resources
34:55 - Third-party Libraries?
36:39 - HTTP Live Streaming
Picks
Exit Through the Gift Shop (Jaim)
Learn Something New (Andrew)
Michael Vey 5: Storm of Lightning by Richard Paul Evans (Chuck)
Get outside and get moving (Chuck)
01:37 - Apple Watch
08:55 - iPhone 6s + 6s Plus
19:06 - iPad Pro
29:20 - Apple TV
Picks
Oktoberfest Beer (Jaim)
CodeCombat (Alondo)
Airplay Tutorial: An Apple TV Multiplayer Quiz Game (Alondo)
Beginning tvOS Development with TVML Tutorial (Alondo)
Pebble.js (Chuck)
Basecamp (Chuck)
01:18 - Gábor Szántó Introduction
02:46 - Superpowered
Typical Applications
13:00 - Audio Apps on iOS vs Android
16:59 - Superpowered Cost
17:51 - Connecting Code
22:18 - Algorithms
24:25 - DJ PLAYER and The DJ Market
Picks
Hardcore History (Jaim)
Whynter Ice Cream Maker (Andrew)
The Aggregate Magic Algorithms (Mike)
Solarbotics Bundles (Mike)
15 Minute Podcast Listener chat with Charles Wood (Chuck)
Pebble Time (Chuck)
The DFT “à Pied”: Mastering The Fourier Transform in One Day (Gábor)
01:05 - Chris Grant Introduction
01:19 - iOS9 Day-by-Day Blogs
01:52 - Search APIs
03:27 - NSUserActivity
04:56 - Indexing
09:06 - Displaying Results, Supporting Deep Linking
10:28 - Core Spotlight
11:54 - Images
13:34 - Benefits of the API
14:49 - Content & Discoverability
16:41 - Is anything missing?
18:24 - Testing
18:50 - Indexing Shared Data
19:30 - shinobicontrols
22:52 - iOS9 Day-by-Day Blogs
24:18 - Recommendations for Developers Updating Apps to iOS9
Picks
Hackathons (Alondo)
Flock (Alondo)
keen (Andrew)
Autodesk 123D Design (Andrew)
React Native Podcast (Chuck)
15 Minute Podcast Listener chat with Charles Wood (Chuck)
Orphan Black (Chuck)
fastlane (Chris)
01:26 - Neal Ford Introduction
01:42 - Ambient Information and the Apple Watch
06:39 - Benefits of Having Ambient Information
08:52 - When should information be ambient?
12:53 - Notifications
15:58 - Visualizing Information, User Experience
17:09 - Apple Watch as a Fashion Accessory
18:04 - Ambient Control
22:29 - Training Siri
23:46 - Google Glass
26:45 - Apps That Shouldn’t Push Ambient Information
29:42 - Customization
32:10 - What can app designers do to make their applications more approachable on the watch?
34:10 - Battery Life
35:00 - Security
36:13 - Could-be Feature Improvements (User Customization)
Other DevChat.tv Episodes Featuring Neal Ford
Picks
Remote Year (Alondo)
Homemade Chicken Broth (Jaim)
Adafruit Inductries (Mike)
Soaring Society of America (Mike)
HMDX - JAM XT Extreme Wireless (Chuck)
Orphan Black (Chuck)
iOS Remote Conf! Interested? Email chuck@devchat.tv (Chuck)
Seveneves: A Novel by Neal Stephenson (Neal)
Badass: Making Users Awesome by Kathy Sierra (Neal)
Bose SoundLink Mini Bluetooth Speaker II (Neal)
Beats II Bluetooth Headset (Neal)
01:14 - Ray Wenderlich Introduction
01:23 - Mic Pringle Introduction
01:40 - Greg Heo Introduction
01:47 - The Conception of Ray’s Tutorial Website and The Tutorial Team
05:58 - Maintaining High Quality and Consistency
07:26 - Tips & Advice for Writing a Tutorial
09:12 - Avoiding User Frustration
11:54 - Writing Books
13:00 - Traditional vs Self-Publishing
14:31 - Book Content vs Site Tutorials
15:41 - Starter Kits
16:33 - Transitioning to Swift
19:47 - Error/Bug Support
21:06 - Branching Out Into Other Technologies
22:21 - Selling Introductory vs Advanced Tutorials
25:15 - Choosing Topics
26:08 - RWDevCon
31:48 - Working with Ray and on raywenderlich.com
36:31 - Maximizing Marketing Opportunities
39:46 - Writing Tutorials for Mainstream Apps & Games
41:08 - Highlights
Episode Resources
Picks
WinObjC (Andrew)
Friday Q&A 2015-07-31: Tagged Pointer Strings by Mike Ash (Andrew)
The Web Platform Podcast Episode 56: Building Your Brand with Charles Max Wood (Chuck)
Developer On Fire Episode 017 - Charles Max Wood - Get Involved and Try New Things (Chuck)
Skype’s Inside Out Emojis (Chuck)
little bites of cocoa (Ray)
The insanely slow road to building a blog (and why most people give up) by Belle Beth Cooper (Ray)
What the Best College Teachers Do by Ken Bain (Greg)
What’s Your Learning Style? Quiz (Greg)
Brian Gilham's WatchKit Resources (Mic)
Exploding Kittens (Mic)
Claim 15 minutes of Chuck’s time!
01:49 - Wes McCabe Introduction
02:46 - App Store Optimization (ASO) for SEGA
04:09 - Improving Visibility Within the App Store
13:19 - Launching a New App
16:54 - Images and Videos
18:04 - Improving Rank
19:58 - Getting Featured
21:22 - Using SensorTower (Results)
23:55 - Broad vs Focused Apps/Niches
26:30 - Influencing ASO Through SEO, Press Releases, etc.
27:38 - Downloads
29:12 - Brand New App Boost/Version Releases
30:06 - Appstore Views (Reviewing Analytics)
Picks
NHL94 Online (Jaim)
Podcast Movement (Chuck)
Entrepreneur On Fire (Chuck)
The Eventual Millionaire (Chuck)
Periscope (Chuck)
Alex Malafeev: Increase your mobile app downloads using App Store Optimization (Wes)
ASO Academy (Wes)
Jot (Wes)
01:21 - John Reid Introduction
02:45 - Tools For Testing and Test-Driven Development (TDD)
03:24 - Matching/Matchers
07:13 - Getting Started
08:58 - Partial Matching
10:26 - Mocking and Stubbing
14:04 - TDD Process and Workflow
17:49 - TDD vs Unit Testing
19:54 - iOS Code That Doesn’t/Does Adapt Well to TDD
21:17 - User Interface Testing
24:58 - End-to-End Testing
30:18 - Communication and Collaboration
33:39 - OCMock, OCMockito
39:13 - OCMockito with Swift?
41:07 - Inside Out vs Outside In
Picks
wit.ai (Mike)
Jon's UIViewController TDD Screencast (Jaim)
Test-Driven iOS Development (Developer's Library) by Graham Lee (Jaim)
NeewerHandheld Video Stabilizer for DV GoPro Mini Cameras (Chuck)
Cell Phone Tripod Adapter (Chuck)
Working Effectively with Legacy Code by Michael Feathers (Jon)
Clean Coders (Jon)
AppCode (Jon)
Check out RailsClips!
01:53 - Michele Titolo and Women Who Code Introduction
02:15 - Origin Story
03:11 - Stated Mission
04:12 - Mentorship
08:54 - Getting Started and Getting Involved
11:27 - Value
12:42 - Remote/Virtual Membership/Communication
15:08 - What Makes Women Who Code Different (from other groups)?
18:02 - Is there a need for groups like this? What issues do these address?
22:34 - Implementing Diversity into the Workplace
32:29 - Terminology (Using words like “guys”)
35:16 - Is it really harder for women to get jobs?
43:13 - The Community at Large (How can we help make the community more open and welcome?)
46:08 - Are there people who can help people/companies diversify?
49:49 - How can I help? (as a man)
51:47 - Study Resources (Proof)
Groups and Mailing Lists (mentioned in this episode) * Glassbreakers * Women Who Code SF (San Francisco) * DevChix * Tech LadyMafia * Girls Who Code * Black Girls Code * PyLadies * Ladies Who Code * RailsBridge * App Camp For Girls * Girl Develop It * Mobile Bridge * Geekettes * PowerToFly * MotherCoders * The Ada Initiative * Fund Club * AlterConf
Picks
Power Up Your Animations! with Marin Todorov (Alondo)
Poker Theory & Analytics (Alondo)
Paracord (Chuck)
Soto Pocket Torch (Chuck)
Kate Heddleston: How Our Engineering Environments are Killing Diversity (Michele)
Ashe Dryden: The Responsibility of "Diversity" (Michele)
Conference proposal writing: From brainstorm to submit @ 360iDev 2015 (Michele)
Check out RailsClips!
02:28 - Samuel Giddins Introduction
02:57 - The Limits of Modularity
05:53 - Where were/are cracks discovered?
13:40 - Modularity in iOS/Swift Apps
16:48 - Boundaries
24:11 - Going Too Far With Modularity (Warning Signs)
35:45 - Getting Too Modular
Picks
RimWorld (Mike)
Daniel Steinberg: Somewhere Between Tomorrowland and Frontierland (Alondo)
AltConf 2015 Videos (Jaim)
Joshua Marker: Mastering Time and Space: Testing the Objective-C Runtime (Jaim)
remoteconfs.com (Chuck)
God (Chuck)
Jesus Christ (Chuck)
The Church of Jesus Christ of Latter-day Saints (Chuck)
Graham Lee: I Have No Idea What I'm Doing (Samuel)
Tower (Samuel)
Hopper (Samuel)
opensource.apple.com (Samuel)
01:34 - Matt Ronge Introduction
01:54 - Launching Astropad
05:10 - Being Unique (Unique Selling Proposition)
10:05 - Launch Sequence
12:34 - Approaching the Press
14:31 - Marketing Towards Non-Press Members (Influencers)
16:14 - Launch Day
20:51 - Learning to Launch
22:05 - Marketing: Messaging/Communication/Packaging
25:36 - The Technical Story Behind Astropad
32:02 - Marketing After a Launch
34:16 - Splitting Responsibilities
35:42 - Niche Down
Picks
Script use for teams for gender neutral environments (Jaim)
KanbanFlow (Chuck)
HandBrake (Chuck)
Hire Chuck for training! Email Chuck@devchat.tv
Rails Testing Coach (Chuck)
The 22 Immutable Laws of Marketing: Violate Them at Your Own Risk! by Al Ries (Matt)
Computer Networks by Andrew S. Tanenbaum (Matt)
Findings (Matt)
02:05 - Erik Kerber Introduction
02:38 - Apple Pay
04:01 - Why care about Apple Pay?
05:44 - Integration
09:53 - The API
12:48 - How To Do/Setup/Use Apple Pay
17:41 - Apple Pay and iOS 9
19:56 - Offline Use
22:16 - Apple Pay and the Apple Watch
27:30 - Pain Points
30:47 - The Impact of Adding Apple Pay to the Target App
Picks
Demotivators (Jaim)
Blitzortung (Mike)
Hopper (Andrew)
Ham Radio (Andrew)
Boy Scouts of America (Chuck)
Elixir (Chuck)
Programming Elixir: Functional |> Concurrent |> Pragmatic |> Fun by Dave Thomas (Chuck)
Reveal (Erik)
WWDC 2015 Videos
02:09 - Apple Music
03:12 - Metal for OSX
05:04 - The New Swift Features
07:15 - Value Types
09:32 - Error Handling
16:02 - Support for Function Pointers from C
20:04 - Lightweight Generics
22:42 - Guard and Defer
27:27 - Xcode Improvements, Autolayout
29:55 - New Core Audio and Core Image Features
34:01 - Testing
38:15 - The Address Sanitizer
51:07 - Crash Logs Addition in Xcode7
54:43 - Installing Apps Without a Subscription to the Developer Program
Picks
Owen Williams: Apple’s biggest developer news at WWDC that nobody’s talking about: Bitcode (Alondo)
neo-Style Lightning Charge & Sync Cable (Alondo)
Hardcore History Podcast (Jaim)
WebAssembly (Mike)
ASCIIwwdc (Andrew)
Get your Ruby Remote Conf tickets and check out the @rubyremoteconf Twitter feed for exciting updates about the conference.
02:05 - Dustin Bruzenak Introduction
02:29 - Dylan Bruzenak Introduction
02:54 - The Iconfactory
08:54 - Design and User Experience
18:24 - Lessons Learned From AppViz
27:56 - Positioning Your App Properly
34:19 - The Developer Market
37:09 - Niche Market Focus
45:41 - The App Store
Picks
FastSpring (Andrew)
DevMate (Andrew)
Apple API Diffs (Andrew)
GOG (Andrew)
Sample Code from WWDC Sessions (Mike)
Wits (Mike)
Listen to other people’s views (Chuck)
Ruby Remote Conf (Chuck)
World Time Buddy (Dylan)
Complice (Dylan)
Transmit (Dylan)
xScope (Dustin)
Slack (Dustin)
01:44 - Dave Verwer Introduction
02:30 - iOS Dev Weekly
05:29 - Curating Process
07:17 - Editing
08:39 - Feedback
09:51 - Curation (Cont’d)
10:52 - Sponsorship
15:24 - Curated and Email Marketing
21:21 - Avoiding Spam Filters
24:54 - A/B Testing
26:07 - Dave and iOS Development
Picks
Russ Bishop: More Swift Attributes (Andrew)
Silicon Labs Microcontrollers (Andrew)
DigiKey (Andrew)
ASCIIwwdc (Mike)
Lifeline... (Dave)
Pink Floyd on Vinyl on YouTube (Jaim)
01:36 - Mike Ash Introduction
06:26 - Synchronization and Collaborative Editing
09:41 - Existing Solutions?
11:32 - VoodooPad
14:43 - Common Approaches for Document Syncing
19:02 - Conflicting Changes
21:56 - Merge Strategy
24:27 - Use Cases, Connection
33:51 - Online/Offline Detection, Handling Slow Responses
39:32 - Retries
41:35 - Dropbox and Document Syncing Problems
42:50 - Support
Picks
Differential Synchronization by Neil Fraser (Mike)
MailRoute (Andrew)
SCSI2SD (Andrew)
GFood Lounge (Jaim)
Calzone's Italian Restaurant in San Francisco (Jaim)
01:47 - An Arduino is a Microcontroller
03:46 - Where Do You Get an Arduino?
05:00 - Getting Started (Equipment)
07:58 - Language/Interface
13:07 - Raspberry Pi vs Arduino
16:30 - iOS Compatibility
24:12 - Projects
32:24 - Patterns
34:41 - Debugging
Picks
The 7 Day Startup: You Don't Learn Until You Launch by Dan Norris (Alondo)
UIKonf 1995 Keynote: Object-Oriented Programming in Objective-C (Andrew)
AmScope SE400-Z Professional Binocular Stereo Microscope (Andrew)
Charlie Christian Neck for Telecasters (Jaim)
Check out Andrew’s Wired In Kickstarter! Go here to check it out and contribute!
02:53 - Warren Moore Introduction
03:58 - Working for Apple => Doing Metal (Transition)
05:15 - 3D Graphics APIs
11:14 - Metal = Objective-C API
13:11 - The Programmable Pipeline (Shading)
19:40 - Metal
22:07 - Draw Call Batching
25:30 - Testing Metal
26:01 - Who Is Metal For? What Else Can Metal Do? (Besides 3D Graphics)
33:35 - Getting Started with Metal
38:15 - Multithreading
41:34 - Metal Adoption and Future
45:11 - 3D Graphics Programming Resources
02:42 - Models
04:51 - iPhone Interaction
06:06 - Apps
07:37 - Simplicity and Accessing Basic Information
10:02 - Storage?
12:22 - Bluetooth Connection
13:06 - Notifications
15:55 - Text Input
16:56 - Sensor for Health Features
17:38 - Apple Pay
19:16 - Apps (Cont’d)
21:00 - Screen Brightness
22:45 - Motion Sensing?
Picks
SPIbelt (Jaim)
Ruby Remote Conf (Chuck)
Traction: Get a Grip on Your Business by Gino Wickman (Chuck)
New Star Wars Trailers (Chuck)
01:42 - JP Simard Introduction
02:11 - Realm
03:59 - Realm vs SQLite or Core Data
06:27 - Getting Started
08:17 - API
10:27 - Relationships
11:34 - Inheritance
15:24 - realm-cocoa & realm-java
16:42 - Enterprise Services and Company Sustenance
19:21 - Migration, Updating the Data Model
27:12 - Transactions/Onboarding
30:18 - Cascading Deletes
31:40 - Drawbacks, Feature Addition
37:18 - Getting Involved with Realm
38:47 - SQL Querying
41:26 - Testing
Picks
desksurfing (Alondo)
How to Win Friends & Influence People by Dale Carnegie (Chuck)
WorkFlowy (Chuck)
Mini Habits: Smaller Habits, Bigger Results by Stephen Guise (Chuck)
Habit Stacking: 97 Small Life Changes That Take Five Minutes or Less by S.J. Scott (Chuck)
Waffle (JP)
02:17 - Persistence
03:08 - Approaches for Persistence
06:03 - NSCoding
07:57 - .plists (Property Lists)
10:44 - Options for Handling Large Elements
12:29 - SQLite & Core Data Pros and Cons
23:40 - Different Implementations with Core Data
25:29 - Binary
26:31 - In-Memory
27:39 - Using Core Data for the First Time (Gotchas)
30:11 - Third-Party Persistence Frameworks/Libraries
32:24 - APIs, Crashing Issues
35:35 - Tracking Core Data Changes
37:05 - Migration
Picks
Marcus Zarra: My Core Data Stack (Alondo)
NSHipster: NSUndoManager (Alondo)
The Lytro Camera (Andrew)
Don’t drink coffee as soon as you wake up (Jaim)
iPhreaks T-Shirts are available via Teespring! Visit teespring.com/iphreaks to reserve yours by Wednesday, May 6th!
T-shirt styles include: unisex up to 3x, ladies', hoodies, and long sleeve tees. Teespring also offers international shipping so that all of our listeners have a chance to buy!
02:47 - Martin Grider Introduction
09:29 - Interaction Design and Mechanics
12:25 - Designing for Mobile vs Board Games
14:30 - Converting Board Games to Mobile
17:09 - Copyright Infringement (Cloning)
20:54 - Protecting Your Ideas and Partnering with Publishers
23:19 - Getting Help as an Indie Game Dev
27:02 - App Shopper
28:24 - Technical Aspects of Game Development
34:31 - Physics
36:12 - The International Game Developer's Association (IGDA)
39:47 - Catchup
Picks
Hunter Loftis: We Will All Be Game Programmers (Pete)
Indie Game: The Movie (Pete)
Eurogames (Pete)
The Changelog #151: Rust with Steve Klabnik and Yehuda Katz (Pete)
A Swift Guide to Rust (Andrew)
Arduino Esplora (Andrew)
Analogue Nt (Andrew)
L3D (Martin)
Game Developers Conference (Martin)
GameLoading (Martin)
Top Hat (Martin)
CumulusPRO Commercial Grade Anti-Fatigue Comfort Mat Area Mat (Jaim)
iPhreaks T-Shirts are available via Teespring! Visit teespring.com/iphreaks to reserve yours by Wednesday, May 6th!
T-shirt styles include: unisex up to 3x, ladies', hoodies, and long sleeve tees. Teespring also offers international shipping so that all of our listeners have a chance to buy!
Related iPhreaks Freelancing Episodes:
02:52 - What is Work/Life Balance? Is There a Perfect Balance?
08:29 - Family Time
10:10 - Structuring Your Work Week (Prioritization)
16:30 - Shortening Hours to Maintain Sanity and Maximize Productivity
22:06 - Just Say NO
Picks
Primus and the Chocolate Factory (Jaim)
VARIDESK (Jaim)
Audible (Chuck)
The Magic of Thinking Big by David J. Schwartz (Chuck)
Firefight (The Reckoners) by Brandon Sanderson (Chuck)
Going for a run (Chuck)
Congratulations, iPhreaks, on 100 Episodes!
02:50 - What’s Up, Ben Scheirman?
03:30 - What’s Up, Rod Schmidt?
05:18 - The Evolution of The iPhreaks Show and the Panel
07:32 - WWDC
08:00 - The Amazon Dash Button
09:28 - WWDC (Cont’d)
11:34 - Show Topics: Growth
15:10 - Favorite Episodes
20:38 - Ben’s Guitar Podcast: Vibrato.fm
27:48 - The Show Process: Scheduling => Final Product
30:40 - Getting Good Sound
37:20 - Listenership: Finding Our Audience
Picks
Shanghai (Ben)
Scanbot (Ben)
Vibrato.fm (Ben)
Electro-Harmonix SOULFOOD Distortion/Fuzz/Overdrive Pedal (Ben)
Hire Rod! (Rod)
GoPiGo (Rod)
The New James Bond Trailer: SPECTRE (Rod)
RATIONAL FUNK with Dave King Video Series (Jaim)
Shun VBS0200 Sora 2-Piece Knife Set (Alondo)
CompareFolders (Andrew)
TenFourFox (Andrew)
The New Nintendo 3DS (Andrew)
Steelheart (The Reckoners) by Brandon Sanderson (Chuck)
Thank you RailsClips Kickstarter Backers!
02:02 - Is Objective-C dead? Will all apps eventually be written in Swift?
08:48 - Xcode Support
10:18 - Mixing Objc and Swift (Becoming Bilingual) or Choosing One or the Other?
25:33 - Is there a dying language?
27:05 - If you learn Swift are you disadvantaged if you don’t know Objc?
Picks
iOS Animations by Tutorials by Ray Wenderlich (Alondo)
Elevator Saga (Alondo)
Vibrato.fm (Jaim)
CODE 87-Key Illuminated Mechanical Keyboard with White LED Backlighting - Cherry MX Clear (Chuck)
Grifiti Fat Wrist Pad (Chuck)
Pebble Watch Kickstarter Campaign (Chuck)
Ready Player One by Ernest Cline (Chuck)
Are you attending MicroConf? Chuck wants to know! Tweet him at @cmaxw.
01:47 - Justin Spahr-Summers Introduction
02:04 - Carthage
02:30 - CocoaPods vs Carthage
04:09 - Motivation for Creating Carthage
06:38 - Support and Getting Started with Carthage
08:19 - Working with Other Custom Build Tools like RubyMotion or Xamarin
09:50 - Static Libraries?
10:58 - The Implementation of Carthage
11:53 - Using This Tool: Mac vs iOS Projects
13:24 - Keeping Carthage Working
14:23 - Naming Carthage
14:51 - Choosing CocoaPods or Carthage
16:54 - Carthage and Swift
19:02 - Challenges
21:02 - Working with Private Repositories
21:56 - Support for Other Version Control Systems
22:58 - The Future of Carthage
30:25 - Forward Compatability
31:44 - ReactiveCocoa
Picks
Welcome to Macintosh Podcast (Andrew)
Appalachian Jerky Company (Andrew)
The Wizard of Earthsea Trilogy by Ursula K. Le Guin (Chuck)
Traction by Gino Wickman (Chuck)
Few.swift (Justin)
For more on Carthage, check out the Github repo and the Quora answers from Justin!
Support the shows at devchat.tv/kickstarter!
01:45 - Michele Titolo Introduction
02:26 - Deconstructing and Decoupling
08:36 - Having Seams in Your Code to Avoid Conflict
11:35 - The Deconstructing Mindset (Finding Reuse Patterns)
17:48 - The Decorator Pattern
18:43 - Categories
21:34 - Sharing UI (User Interface) Codes
23:55 - Mechanics of Sharing Code Between Apps
29:02 - Lessons Learned: Easy Ways/Patterns to Know When to Break Up Small Functionalities
33:23 - Cocoapods: Commit to Source or Not?
39:59 - Team Collaboration
Picks
Refactoring: Improving the Design of Existing Code by Martin Fowler (Pete)
Working Effectively with Legacy Code by Michael Feathers (Pete)
Refactoring To Patterns by Joshua Kerievsky (Pete)
WWDC 2010 Session 138: API Design for Cocoa and Cocoa Touch (Andrew)
[Slides] Michele Titolo: Cocoa Design Patterns in Swift (Andrew)
The Cocotron (Andrew)
Matt Gallagher: Design of a multi-platform app using The Cocotron (Andrew)
Zombie Monkie by Tallgrass Brewing Company (Jaim)
Getting out and participating in programming language communities (Chuck)
The Earthsea Cycle Series Book Series by Ursula K. Le Guin (Chuck)
The Pixar Touch by David A. Price (Chuck)
8 Patterns to Help You Destroy Massive View Controller (Michele)
Artsy - iOS at Scale - objc.io issue #22 (Michele)
01:42 - James Montemagno Introduction
02:42 - Printer Software Development
04:50 - Moving to Mobile Development
06:19 - Xamarin
08:19 - Cross-Platform Development
11:37 - Companies and Libraries (Sharing Libraries)
13:09 - Plugins for Xamarin
15:08 - Techniques for Sharing UI Elements
21:00 - Developing On the Watch with Xamarin
23:52 - Android Wear vs Watch (Wearables)
Picks
Smokette Elite Model SM025 Electric Smoker (Jaim)
Monodraw (Andrew)
The LightBlue Bean (Andrew)
The Three Fives Kit: A Discrete 555 Timer (Andrew)
Refactoring to Patterns by by Joshua Kerievsky (Alondo)
Ray Wenderlich: iOS 8 by Tutorials (Alondo)
Ready Player One by Ernest Cline (James)
Strava (James)
Tavour (James)
graze (James)
Check out RailsClips on Kickstarter!!
01:56 - Testing and Test-Driven Development (TDD)
03:23 - Panel Experiences with TDD
08:10 - Value Objects
09:08 - How To Do TDD
11:28 - Jaim’s TDD Process
13:44 - Value and Getting Started with Testing
21:58 - Writing Tests First
27:18 - Testing on a Team
32:47 - Higher Level Testing
36:54 - KIF
38:00 - Other Ways of Testing UIs
39:44 - Who Writes the Tests?
44:06 - Test Data and Environments
46:50 - Lower-level to Higher-level Tests Transition
51:51 - Recording User Interactions
Picks
John Reid: UIViewController TDD [Screencast] (Jaim)
Test-Driven iOS Development (Developer's Library) by Graham Lee (Jaim)
WatchKit FAQ (Alondo)
This Idea Must Die: Scientific Theories That Are Blocking Progress (Edge Question Series) by John Brockman (Alondo)
Martin Fowler: The Test Pyramid (Pete)
Working Effectively with Unit Tests by Jay Fields (Pete)
Avery Brewing IPA (Pete)
A Wizard of Earthsea by Ursula K. Le Guin (Chuck)
80/20 Sales and Marketing: The Definitive Guide to Working Less and Making More by Perry Marshall (Chuck)
Miracles and Massacres: True and Untold Stories of the Making of America by Glenn Beck (Chuck)
Check out RailsClips on Kickstarter!!
02:16 - Conference WiFi
03:31 - Conferences
10:23 - Budget, Content, and Social Aspects => Value
14:38 - Panelist Plans for 2015
19:57 - Size: Smaller, Regional, International Conferences
21:29 - Travel & Accommodations
26:46 - CocoaConf vs 360iDev
28:44 - Presenting/Speaking at Conferences
32:53 - Attending Conferences (Tips)
37:52 - “The Unconference”
40:29 - Favorite Speakers in the iOS Space
41:56 - Jam Sessions and Playing Games
Picks
The Shape of Things to Come: How an Industrial Designer Became Apple's Greatest Product (Andrew)
Orange Juice Liberation Front: WWDC First-timer tips (Andrew)
WWDC Tips as Accumulated by a Veteran of a Staggering ONE WWDC (Andrew)
5 Tips for WWDC 2013 (Andrew)
Carl Brown: Making the Most of Your (iOS) Dev Conference Experience (Jaim)
Ray Wenderlich.com (Alondo)
360iDev (Alondo)
RailsCasts Kickstarter (Chuck)
YouTube (Chuck)
FFmpeg (Chuck)
Developer’s Box Club (Chuck)
Ruby Remote Conf (Chuck)
Would you attend an iOS Remote Conf? Email chuck@devchat.tv
In this giveaway episode, the panelists interview John Sonmez about how to market yourself as a software developer.
The panelists talk to DevMountain's Joshua Howland about teaching people to code in iOS.
The panelists discuss App Preview and AppShow with Daniel Foster and Mike Malinak of TechSmith.
The panelists interview Josh Brown about teaching other to build iOS applications and using Swift.
The panelists discuss mobile backend services, API design & hypermedia with Stewart Gleadow.
This Book Club Episode features Ash Furrow, who wrote the book, Functional Reactive Programming.
The panelists interview Jim Rutherford and talk about cool ways to get kids involved in programming.
The panelists talk about game development with Brianna Wu, Amanda Stenquist Warner, and Maria Enderton of Giant Spacekat of Revolution 60.
Panel Manton Reece (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Pete Hodgson (twitter github blog) Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:13 - Manton Reece Introduction VitalSource Riverfold Software 01:33 - Subscription APIs and Recurring Revenue 02:25 - How Subscriptions Work 12:10 - In-app Purchases Non-renewing Subscriptions Auto Renewing Subscriptions 16:11 - Verifying Receipts Store Kit 19:32 - Subscription Levels Changing Plans 25:14 - Payments Stripe vs PayPal Picks Eric S. Raymond: The Lost Art of C Structure Packing (Jaim) Torchlight II (Ben) SC2Casts (Ben) after_party (Ben) thebennybox (Ben) Using Receipts to Protect Your Digital Sales (Ben) Using Store Kit for In-App Purchases (Ben) 2 Free (Technical Support Incidents) TSIs (Pete) Bay Area Casual Carpool (Pete) Bay Area Bike Share (Pete) Lucky 13 (Pete) Mike Ash: Friday Q&A 2014-01-10: Let's Break Cocoa (Andrew) The official raywenderlich.com Objective-C style guide (Andrew) Bacon Ipsum (Chuck) David Brady: The Job Hunting Mindset (Chuck) David Brady: The Job Replacement Guide: Why I Have To Write This Book (Chuck) Stripe (Manton) Helios (Manton) Next Week MGPCommandBus with Saul Mora Transcript CHUCK: We got this Man-ton on our show! CHUCK: Hey everybody and welcome to episode 39 of the iPhreaks Show. This week on our panel we have Ben Scheirman. BEN: Hello, from Bayou City. CHUCK: Bayou City? BEN: That’s Houston’s nickname. If we had a Ruby Conference, it would be Bayou City Ruby, and no one would know where it was. CHUCK: Yeah, that’s true. ANDREW: We’d all be in Louisiana. [Chuckling] CHUCK: Why are y’all in New Orleans? JAIM: That would be dirty south [inaudible]. CHUCK: Hey, at least you can go [inaudible]. Anyway –. JAIM: No offense to my New Orleans listeners. CHUCK: [Chuckles] We also have Pete Hodgson. PETE: Good morning from San Francisco! I don’t know what her nickname is; I should look that up. JAIM: Golden Gate City, is that it? PETE: I was tempted to go for Rainbow City, but –. CHUCK: [Laughs] We’re batting two for two this morning. Alright, Andrew Madsen. ANDREW: Hi from Salt Lake City. CHUCK: Jaim Zuber. JAIM: Hello from the Twin Cities. CHUCK: I'm Charles Max Wood from DevChat.tv and this week we have a special guest, and that is Manton Reece. MANTON: Hello from Austin, Texas! Good to be here. CHUCK: Hey, I managed to say that right! Do you wanna introduce yourself for those of us who don’t know who you are? MANTON: Sure. My name is Manton Reece, and I work for a company called VitalSource doing e-book software with Mac iOS12 web development, and I have a little side business called Riverfold Software where I have a number of iOS and Mac apps, web apps. CHUCK: Cool! So we brought you on today to talk about subscription APIs and recurring revenue – is that a thing for iOS? MANTON: That’s a thing for iOS. It depends who you ask what kind of answer you're gonna get about the right way to do that, or whether you should do it. But it’s a thing, I would say. CHUCK: I thought the thing was to write Angry Birds and make millions of dollars. MANTON: That’s one way to do it. The problem with the app store – the great thing and the problem is that you do have these huge hits that make way too much money, but then most of us aren’t that lucky, and even the ones that are lucky have a big hit, you sell a bunch of copies, you quit your job, you say, “This is great” and you do really well. Eventually, your app’s gonna fall out of the top 10 and top 100 and sales are gonna drop off and so you have to do it all over again and get a big launch. So, the subscriptions, the hope is you get a little more recurring revenue,
Panel Jaim Zuber (twitter Sharp Five Software) Ben Scheirman (twitter github blog NSSreencast) Andrew Madsen (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:45 - iOS vs OS X UIViewController NSViewController 06:09 - NSWindowController 08:18 - Layered Views 09:48 - Bindings Cocoa Programming for Mac OS X by Aaron Hillegass Debugging 14:51 - Navigation NSPathView NSTableView NSScrollView NSCell 18:52 - Auto Layout 19:44 - Carbon 22:32 - Objective-C 24:44 - NS Classes Next Step 25:54 - Customization The Hit List Things NSOutlineView NSSplitView NSTabView 30:12 - Mac vs iOS Development Picks Mastering Modern Payments Using Stripe with Rails (Ben) The Doomsday Key: A Sigma Force Novel by James Rollins (Ben) The Art of the Screenshake (Ben) objc.io Issue #7: Communication Patterns (Jaim) The Snow Shark (Jaim) FastSpring (Andrew) objc-run (Andrew) Andrew's CocoaSlopes2013 Slides (Andrew) Disneyland (Chuck) New Media Expo (Chuck) Next Week Subscription APIs for Recurring Revenue with Manton Reece Transcript CHUCK: I’ll turn this podcast right around. CHUCK: Hey everybody and welcome to episode 38 of the iPhreaks Show. This week on our panel we have Jaim Zuber. JAIM: It’s 10 below, my car won’t start, and I'm not even mad. CHUCK: Ben Scheirman. BEN: It’s 35° and I'm also cold, but not quite as cold. [Chuckles] CHUCK: Andrew Madsen. ANDREW: 25° in Salt Lake City. CHUCK: I'm Charles Max Wood from DevChat.tv. Last week it was like 70-something degrees where I was at, so, very nice. This week we’re gonna be talking to Andrew; he’s kind of our guest, I guess. We’re gonna be talking about OSX programming. It’s kind of interesting after learning some of the techniques and tools for building things for iOS, I haven’t really looked at what's different with OSX. Do you want to kind of get us started on some of the things we have to know or do differently? ANDREW: Sure. Well I think the first thing to know is that iOS and OSX are sort of siblings, or you might even say that iOS is OSX’s kid, but iOS was obviously Apple’s chance to sort of do-over things that they wanted to do differently without the whole legacy baggage that kept them from doing that on OSX. In many ways, iOS is the more modern of the two – I wouldn’t say ‘operating systems,’ but the APIs are certainly more modern in a lot of places. There are things on OSX that are just more difficult if your coming from an iOS background you're sometimes left thinking, “Man, if I were in iOS this would be super easy, but it’s not so easy on OSX.” Fortunately there are also a few places where the opposite is true. OSX still makes things easier than they are on iOS. I'm not exactly sure where to start ‘cause there are quite a few differences. BEN: How about just the, maybe the [inaudible] example. The first thing I notice when I create a new Mac app is I'm used to just getting a view controller for free and that is kind of absent. You got a .NIB and that gives you a main window but there's really nothing else it gives you, right? ANDREW: Right. Well that's actually a great place to start. So on iOS, if you’ve done iOS programming, you know that UIViewControllers are sort of like the main class, almost, in iOS. Every single time you have a view onscreen, it has a UIViewController controlling it. On OSX, there is actually an NSViewController class, but that was introduced in 10.5, so relatively recently in the history of OSX, and what that means is that you can write an entire app without using NSViewController. It’s not sort of the vital class the UIViewController is on iOS, and that sort of gives you a lot more flexibility in terms of how you structure your application, but these days I've actually started using NSViewController more like UIViewControllers used on iOS.
Panel Jaim Zuber (twitter Sharp Five Software) Pete Hodgson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Ben Scheirman (twitter github blog NSSreencast) Discussion 01:32 - Model View Controller (MVC) and Model View Presenter (MVP) Ruby on Rails Model View ViewModel (MVVM) MFC Knockout.js 14:20 - Implementing MVC in iOS Apps 16:46 - Designing Models Alistair Cockburn: Hexagonal Architecture Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans Ruby Rogues Episode #78: Hexagonal Rails with Matt Wynne and Kevin Rutherford Ruby Rogues Episode #61: Domain Driven Design (DDD) with David Laribee 28:32 - Models and the Controller Notifications 31:00 - Key-Value Observing (KVO) 35:48 - Delegates and Blocks Picks Mattt Thompson: Key-Value Observing (Pete) Alistair Cockburn: Hexagonal Architecture (Pete) Saul Mora - Design Patterns for Mobile Apps (Pete) New Spring: The Novel (Wheel of Time) by Robert Jordan (Chuck) Freelancing Q&A (Chuck) Next Week OS X Transcript PETE: I can’t believe I beat Ben Scheirman today. CHUCK: With a stick? PETE: No, he’s in the wrong state for that. CHUCK: Hey everybody and welcome to episode 37 of the iPhreaks Show. This week on our panel we have Jaim Zuber. JAIM: Hello from Minneapolis, where it’s a balmy 4°. CHUCK: Pete Hodgson. PETE: You just totally stole my thunder. I was going to complain about being cold in San Francisco, but it’s a lot warmer than that. Hello from not-so-frigid San Francisco. CHUCK: How cold is it in San Francisco? PETE: [Chuckles] Like, 32°. I don’t know, it feels like it’s freezing, but it’s probably not even 32°. Probably warmer than that, just cold for San Francisco. CHUCK: Charles Max Wood from DevChat.tv and it’s also 4° here. PETE: Okay, I’ll stop complaining. JAIM: Really? Or is it just dry cold? CHUCK: Yeah, it’s just dry cold here, too. We did get some snow. JAIM: There we go. PETE: It all makes sense now. JAIM: A little bit nicer. CHUCK: Yeah. Gives you something to do – go shovel snow, go skiing – we’re making people jealous now, I'm sure. PETE: I think I've been here once in San Francisco when it snowed, and it was like two or three flakes on the top of Twin Peaks, which is like the only really tall bit of San Francisco, and people drove their cars up there in the middle of the night to see these snowflakes fall [chuckles]. But it wasn’t like snowball fights; it was like four snowflakes. It was really exciting; it made my year. No skiing that year for us at San Francisco. CHUCK: Oh, come on. Alright. Anyway, so today on our [inaudible] we have MVC. JAIM: Alright, we’re talking MVC – an MVC extravaganza of sorts, I think. CHUCK: Yup. [Chuckles] PETE: Maybe we should start off with a definition. CHUCK: [Chuckles] A definition. Thanks, Josh. JAIM: That might take the entire episode, I think. PETE: With MVC, I always get really confused. So I know what MVC stands for: Model-View-Controller. And I kind of understand the principles quite well. But what I don’t get is the difference between MVC and MVP, and then it gets really confusing when you start talking about some of the other things out there. This is a long shot. Do either of you two know the difference between MVC and MVP? Because I definitely could not answer that if I have to save my life. CHUCK: I have a very vague idea of what it means, so I'm not even going to venture to try because I’ll probably get it wrong. One thing that I can say, though is that I've come to iOS programming from a very strong Rails background, and MVC in Rails and MVC in iOS are not the same. JAIM: Yup. CHUCK: I tend to think of iOS as more of an MVVM, because –. JAIM: I forgot about that one. CHUCK: The controller acts more like a view model or a view controller than it does, you know, a full-on controller.
Panel Jaim Zuber (twitter Sharp Five Software) Pete Hodgson (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:59 - Language Backgrounds 05:23 - Other Languages vs Objective-C Static Typing Go LINQ Semicolons First-Class Functions 18:46 - Benefits of Using Objective-C RubyMotion 25:44 - Building Apps Not Using Objective-C 29:36 - Xamarin 33:03 - Calatrava 33:39 - Appcelerator Titanium 38:01 - PhoneGap Picks Get an HD Antenna (Ben) FizzBuzzEnterpriseEdition (Jaim) Forecast (Pete) Stranger in a Strange Land by Robert A. Heinlein (Pete) MadTree Identity Crisis: A Black IPA from Cincinnati (Pete) The Walking Dead (Chuck) Duct Tape Marketing Revised & Updated: The World's Most Practical Small Business Marketing Guide by John Jantsch (Chuck) Next Week MVC Transcript CHUCK: Hey everybody and welcome to episode 36 of the iPhreaks Show. This week on our panel, we have Jaim Zuber. JAIM: Hello from Minneapolis. CHUCK: Pete Hodgson. PETE: Hello from San Francisco. CHUCK: Ben Scheirman’s going to be joining us in a few. This is a weird Christmas episode that we’re recording a little bit early. I’m Charles Max Wood from DevChat.tv and I just want to announce really quickly that if you go to RailsRampUp.com and you sign up before the end of the year, the 31st basically, actually I’m going to give you a few extra days. If you sign up by the 4th, then you can get 30 percent off if you want to learn Ruby on Rails, which is a handy thing for backend stuff. Anyway, this week we’re going to talk about some of the differences between some of our language backgrounds that we have. Some of us come from more enterprise languages like .NET or Java and some of us come from the hippie languages like Ruby, so should be an interesting discussion. JAIM: I think so. CHUCK: So real quickly, besides Objective-C, what are your languages that come out of your tool bag when you need to do something different? JAIM: Well for a long time, I did C# and .NET. Even before that, it was C and C++, embedded stuff, thick client stuff. So I can write C in any language, pretty much. [Chuckles] But things that I like with Objective-C is I’m getting more familiar with how a dynamic language really helps us out, especially with testing and being able to be more fluid with our development. So I like that. But I definitely do come from a static language background. I don’t know. What about you guys? PETE: So I guess I’ve been all over the place. I started off my career in C++. So when I first started doing iOS development, that actually felt quite familiar in some ways, doing manual memory management and all that fun stuff. And then I bounced around a bunch. I did some C#. I did a fair amount of Ruby. I still do quite a lot of Ruby. I do a lot of JavaScript. I do my current project, I’m writing Scala. I’m doing embedded C++ development in my spare time at the moment with Arduinos. So I guess I’ve been all over the place. But my main, my language I reach for the most is probably Ruby, still. And yeah, it’s interesting. I guess I’ve come to my journey into Objective-C is the opposite where I’m coming more from a dynamic place and seeing how it’s actually quite nice to have a type system sometimes, or have a static type system sometimes, and annoying as well. CHUCK: Very nice. BEN: It was a good fight we have right now. [Laughter] PETE: You know what? If you ever want to play with a strong type system, do some Scala development and you’ll either fall in love with type safety or you’ll absolutely hate it. It’s been driving me a little bit crazy but it’s also pretty cool. But anyway, that’s I guess a different podcast. CHUCK: Yeah. My background, I did Java and C++ in college but didn’t really take it seriously.
Panel Christopher Judd (twitter github blog) Pete Hodgson (twitter github blog) Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:37 - Christopher Judd Introduction CTO of Manifest Solutions 01:59 - Mapkit TomTom App Geocaching 04:16 - Getting an App to Work with Mapkit Core Location 06:19 - Accuracy iBeacon iSimulate 11:02 - Turn-by-turn Navigation maps.apple.com/maps 13:16 - New in iOS7 Overlay Levels MK Camera Snapshotter Direction & Routing Geo District Polyline Overlay Rendering Tiled Overlays 15:00 - Heat Mapping 16:44 - Alternatives Google Maps route-me CloudMade MapQuest Microsoft Bing Maps Mapbox Scout 19:35 - Gotchas 23:58 - Drawing Polygons/Charting 29:57 - Core Location iBeacon Estimote Beacons 34:49 - Battery Life Geolocation Picks Objective-Cloud (Andrew) Sound Exchange: Tampa Bay (Andrew) Jyoti Natural Foods Chhole, Chickpeas with Potatoes and Onions (Jaim) Indian Food (Pete) Cooking Your Own Indian Food: Madhur Jaffrey's Curry Nation (Pete) Upright Brewing (Pete) Pivotal Tracker (Chuck) Redmine (Chuck) Pepsi Max (Christopher) Cocoaconf (Christopher) Next Week Other Languages Transcript CHUCK: Hey everybody and welcome to episode 35 of the iPhreaks Show. This week on our panel, we have Pete Hodgson. PETE: Good morning from sunny San Francisco. CHUCK: Andrew Madsen. ANDREW: Good morning from cold Salt Lake City. CHUCK: Jaim Zuber. JAIM: Hey, hey. My, my. ANDREW: Rock and roll will never die. CHUCK: There we go. JAIM: [Inaudible] on mood. ANDREW: I’m a huge fan. CHUCK: I’m Charles Max Wood from DevChat.TV. And this week, we have a special guest and that’s Chris Judd. CHRIS: Thanks for having me. CHUCK: Yeah, no problem. Since you haven’t been on the show before, do you want to introduce yourself really quickly? CHRIS: Sure. I am the CTO of a medium-sized consulting company here at Columbus, Ohio called Manifest Solutions. And what I like to tell people is that by day, I’m a mild-mannered enterprise Java developer, but by night, I’m a crime-fighting mobile developer. CHUCK: Ooh, very nice. JAIM: Do you wear a cape for that? CHRIS: I don’t. But one of the applications I worked on is like ADT for your body. So, if you feel like you’re in a harmful situation, you can triple click this big button in the app and it will dispatch emergency or police to your location or open a one-way communication to a dispatch center. CHUCK: Oh, wow! JAIM: Wow! That’s pretty cool. PETE: It’s cool. It’s kind of like your phone is its own superhero or something. CHUCK: There you go. Do you wear glasses during the day and then take them off to save the world? CHRIS: Only when I go to the phone booth to change. CHUCK: For a second there, I was like, “I’d like to see that,” and then I was like, “No, no I wouldn’t.” [Laughter] PETE: So, do you do mainly iOS development when it comes to mobile or do you do Android as well? CHRIS: So, I do a variety. I do Android, iOS, I do mobile web, I’ve done some PhoneGap and I’m Titanium Certified. PETE: Okay. CHRIS: Wow. PETE: That sounds like the kind of thing a superhero would say, “I am Titanium Certified.” [Laughter] PETE: But Kryptonite allergic. CHUCK: Alright. Well, we brought you on today to talk about Mapkit. CHRIS: Well, that’s great because I think writing applications that take advantage of mapping data are a lot of fun. CHUCK: Do you know how many times my iPhone has gotten me lost? CHRIS: No, I don’t. [Laughter] PETE: You have to be a real expert to know that. I know about everyone’s Mapkit. CHUCK: It’s about half the time, it seems. I get directions and it’s just like,
Panel Chris Adamson (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Ben Scheirman (twitter github blog NSSreencast) Pete Hodgson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:03 - Chris Adamson Introduction Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS by Chris Adamson iOS SDK Development by Chris Adamson and Bill Dudney iPhone SDK Development by Chris Adamson and Bill Dudney Swing Hacks: Tips and Tools for Killer GUIs by Chris Adamson and Joshua Marinacci QuickTime for Java: A Developer's Notebook by Chris Adamson 07:25 - HTTP Live Streaming (HLS) Audio Streaming Browser Support Bitrates 22:35 - HLS vs Progressive Download Servers Dropbox 27:15 - Static Files Wowza Ustream Livestream Twitch Justin.tv Zencoder Compressor 35:57 - Encryption HTTP Live Streaming (Apple) DRM 39:37 - Media Consumption Picks Gilmourish.com (Ben) Pig Hoof MkII (Ben) Saint Arnold Sailing Santa (Ben) Snow Day Winter Ale (Jaim) Laphroaig Single Malt Whiskey (Jaim) Anti-pick: Patents (Pete) Adafruit Industries (Pete) Prohands Gripmaster (Pete) Soldering (Chuck) Thai Food (Chuck) ThemeForest (Chuck) UStream (Chris) Wirecast (Chris) Crunchyroll & Crunchyroll App (Chris) Founders Centennial IPA (Chris) Next Week Mapkit with Christopher Judd Transcript Coming Soon
Panel Kevin Harwood (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Ben Scheirman (twitter github blog NSSreencast) Andrew Madsen (twitter github blog) Pete Hodgson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 02:44 - Does iOS7’s NSURLSession obviate the need for AFNetworking? 03:20 - SSL Pinning Charles Multiple Certificates 08:09 - Reachability 10:24 - Is AFNetworking 2.0 based of NSURLConnection? AFHTTPRequestOperationManager AFHTTPSessionManager 11:52 - Serialization 12:18 - Session Manager NSURLSessionTask NSURLSessionDataTask 15:59 - Using AFNetworking Upgrading 18:11 - AFNetworking and iOS7 20:46 - Prefetching 22:00 - Contributors 22:37 - The three20 Library Category Methods BlocksKit 30:53 - Managing a Large iOS Open-Source Library Mattt Thompson @mattt Mutual Mobile 34:00 - Submitting a Feature to Mattt Picks Macintosh Software Business (Yahoo Group) (Andrew) Low -- Christmas (Jaim) Awful Recruiters (Ben) backup (Ben) Three Africans Coffee (Ben) The Mute Button in Gmail (Pete) P2 Magazine (Pete) Chasin’ Freshies: a fresh hop IPA from Deschutes (Pete) The Hobbit: The Desolation of Smaug (Chuck) AFHARchiver (Kevin) Bamboo (Kevin) Next Week Streaming with Chris Adamson Transcript PETE: I actually don’t [unintelligible] that much. BEN: But you are British. You have to. PETE: Yeah. I'm a traitor to my nation. I also don’t watch football that much. And that’s why I use ‘football’, not ‘soccer’. CHUCK: Hey everybody and welcome to episode 33 of the iPhreaks Show. This week on our panel, we have Jaim Zuber. JAIM: Hello from Minneapolis. CHUCK: Ben Scheirman. Andrew Madsen. ANDREW: Hi from Salt Lake City. CHUCK: Pete Hodgson. PETE: Hello from my pajamas. CHUCK: I'm Charles Max Wood from devchat.tv, with a real quick announcement: if you are interested in learning Ruby on Rails, my Rails Ramp Up course; if you buy it at the beginning of the year… actually, I´ll give you a few days. If you buy it by January 4th, you can get 30% off. You can get that on railsrampup.com We also have a special guess, and that’s Kevin Harwood. KEVIN: Hey guys, from Austin, Texas. CHUCK: Is it snowing in Austin? KEVIN: It’s actually 79 degrees right now. I think the high, it gets up 75 today. So it’s a nice day here in Austin. ANDREW: That sounds nice. JAIM: Not bad. So you are an Auburn guy? KEVIN: I am. It was a pretty good weekend. Me and Tim Cook had a lot to cheer for on Saturday. JAIM: I can sense the glow all the way through the internet. KEVIN: I haven’t stopped grinning since Saturday evening. CHUCK: [Laughs] JAIM: Yeah, that Auburn virus really infected my timeline. Really, the only person on my timeline that was tweeting anything other than football was John Siracusa and he was talking about TVs or something. PETE: I totally tune out whenever time it is that people tweet about this. I think it’s like Sundays or Mondays or something. I get quite annoyed with Twitter and I just stopped using because I don’t know, they are talking about touchdowns and basket hoops or something. I don’t know. It’s all very confusing to me. KEVIN: I'm actually hoping Twitter releases some statistic like they do, like a super bowl halftime show or something and see if we can see an impact from that game and see the usage spike on Twitter. PETE: Someone should do some sentiment analysis on Twitter, where they like to find out… that would be really cool actually to map like… JAIM: Didn’t Apple buy a company that does that? PETE: Really? JAIM: Yeah, for like 200 million. What was it called, Topsy? Isn’t that what they did? KEVIN: Yeah, I think so. PETE: You are telling me I just came up a 200 million dollar idea? [Laughter] I'm not going to tell you guys my other ideas.
Panel Rob Napier (twitter github blog) Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:38 - Rob Napier Introduction iOS 7 Programming Pushing the Limits by Rob Napier & Mugunth Kumar RNCryptor 01:30 - Apple and Security 04:21 - Security Concerns Passwords Personal Information 06:10 - Prevention SSL Verisign 09:50 - Generating Certificates Rob's Practical Security Talk, Slides and Sample Code from CocoaConf Rob Napier: Get Security and Privacy Right PBKDF2 13:05 - Initialization Vector AES Cipher Block Chaining (CBC) 16:06 - RNCryptor 17:34 - Formats OpenSSL HMAC AES Crypt 20:55 - Device Encryption 25:28 - Server Security and Storing Passwords Hashing Salting Shor’s Algorithm 37:48 - Breaking Passwords Rainbow Table BitTorrent John the Ripper 41:47 - Keeping Passwords Safe 1Password LastPass Convenience and Security 47:35 - Obfuscation Picks Use Option as Meta Key in Mac OS X Terminal (Jaim) iTerm2 (Chuck) Duct Tape Marketing Revised & Updated: The World's Most Practical Small Business Marketing Guide by John Jantsch (Chuck) Security Now (Chuck) Reflections on Trusting Trust by Ken Thompson (Rob) Coursera: Cryptography I (Rob) Learn You a Haskell for Great Good: A Beginner's Guide by Miran Lipovača (Rob) Next Week AFNetworking with Kevin Harwood Transcript CHUCK: Hey everybody and welcome to episode 32 of iPhreaks. This week on our panel, we have Andrew Madsen. ANDREW: Hi from Salt Lake City. CHUCK: Jaim Zuber. JAIM: I'm still recovering from the Black Friday deals with the pawn shop. I waited in line for three hours to save $5 on an Xbox 360. Totally worth it. CHUCK: [Laughs] I'm Charles Max Wood from devchat.tv. And we have a special guest this week and that’s Rob Napier. ROB: That's right. I'm here in Raleigh, North Carolina. CHUCK: So do you wanna introduce yourself really quickly for people who don’t know who you are? ROB: Sure. I'm an iOS and Mac developer. I was a Mac developer before iOS come around in the iPhone. I write the book iOS Pushing The Limits. And I do a lot of work in the security world, so I keep a security cryptography package called RNCrytor, for simplifying cryptography. CHUCK: Oh, nice. Isn’t that just a bunch of fancy math? ROB: It is just a lot of fancy math. But it’s easy to do it wrong. CHUCK: [Chuckles] That’s for sure. ROB: [Chuckles] ANDREW: Isn’t that computers? Just fancy math? ROB: It’s so true. We need more math. CHUCK: “So easy to do it wrong.” Don’t tell Adobe that. ROB: [Chuckles] CHUCK: So, speaking with security with iOS, it seems like Apple does a lot of things to provide you with security. I mean, they have sandboxing and all the other stuff that they do. Do we really need to worry about security when we are programming for the iPhone? ROB: Oh certainly, yeah. Apple has done a really great job -- I feel -- in iOS. While over the years, there have been various problems; some of the earliest locks didn’t really work well and early device encryption have trouble, but they’ve improved over the years. But iOS is really the first main stream operating system that came out with least privilege as the default, which was really brilliant, that they said day 1, “You are going to be locked in a little sandbox and you can't do anything,” which made it very hard to write malware against the iPhone. But it still doesn’t get us off the hook of managing user information carefully. While we may not get infected with the virus, we still have lots of ways that we could leak our customer information. CHUCK: What are some of those ways? If it’s just a self-contained app and it doesn’t talk to anything else, is that still a risk? ROB: That's true.
Panel Matthew Morey (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Andrew Madsen (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:35 - Matthew Morey Introduction Buoy Explorer ChaiOne 01:23 - Making Core Data Perform 05:45 - Importing Data 08:23 - Batch Sizing 09:37 - Photo Blobs 13:25 - Persistence 16:43 - Query Performance String Comparison Order of Operations Hashing Tokens 22:24 - Concurrency Models Context Notifications Picks iPad Telepresence Robot (Ben) Mercurial SCM (Andrew) Florian Kugler: Backstage with Nested Managed Object Contexts (Andrew) Needle Doctor (Jaim) Grado Labs Black1 (Jaim) Remote: Office Not Required by Jason Fried and David Heinemeier Hansson (Chuck) Audible (Chuck) High Performance Core Data (Matthew) Planet Money Podcast (Matthew) Core Data: Data Storage and Management for iOS, OS X, and iCloud by Marcus S. Zarra (Matthew) Next Week Security with Rob Napier Transcript BEN: That’s the problem is that when my kids see the mixer, they are like, “Oh, knobs and buttons! I'm going to push all of them.” CHUCK: Hey everybody and welcome to episode 31 of the iPhreaks Show. This week on our panel, we have Jaim Zuber. JAIM: Boy, that is one cranky Rottweiler. CHUCK: Andrew Madsen. ANDREW: Hi from Salt Lake City. CHUCK: Ben Scheirman. BEN: Hi from Houston. CHUCK: I'm Charles Max Wood from devchat.tv and we have a special guest this week, and that is Matthew Morey. MATTHEW: Hello, also from Houston. CHUCK: So since you haven’t been on the show before, do you wanna introduce yourself? MATTHEW: Sure. So I got a couple of degrees in semiconductors physics and electrical engineering and quickly did nothing with those degrees. Spent a couple of years working on embedded electronics and a lot of C programming. And iOS SDK came out and jumped it to that, and been doing my own apps, including Buoy Explorer, which is a marine conditions app for surfers and water sports enthusiasts, where I implemented core data improperly there. And also I do work for a company here in Houston called ChaiOne, where we do a lot of client work. CHUCK: Yeah, I've met those guys before. MATTHEW: My boss is a real stickler. CHUCK: Yeah, I've heard that a couple of times. We brought John today to talk about high performance core data. Are there tricks to making core data perform or does it just work, or what? MATTHEW: Well, you can check the check box in the templates and it will generally just work. The problem is that it is such a complex framework and it’s just its so flexible and large. It’s very easy to put yourself in a bind or do the wrong thing and then suddenly, you'll have performance issues. I spent a lot of time making those mistakes, and I finally got to the point where I just wanted to figure all that out and kind of wrap my head around it. And so I've been focusing on that a lot, in particular. JAIM: You mentioned in Buoy Explorer, you initially did it improperly. Do you wanna elaborate on what mistakes you made there? MATTHEW: Yeah, so a common pattern in apps is you have to import data; either user’s data from the server or just general data, be it JSON, XML. On Buoy Explorer’s case, I'm downloading a bunch of data from these Buoys that are on the ocean and I measure wind conditions. And this data is very dense, so there's readings every 15 minutes from hundreds and thousands of these buoys. So there's a lot amount of data. And the way that the data is structured, I can't really fetch that data in a network efficient way. Unfortunately, I have to grab large amounts of data at a time. And importing that data into the persistence layer or into core data takes time; the data has to be parsed, the relationships have to be made, and then it has to be saved.
Panel Joel Stewart (twitter github) Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:30 - Joel Stewart Introduction VP of Engineering at Canopy Video Game Development 01:06 - Building Hardware Sensus Apple’s MFI Program 04:34 - Connectors 09:11 - Challenges of connecting a device through a lightning adapter Case Certification CES 11:39 - Build Process 17:24 - Detection Sensus SDK Developer Portal 21:54 - Bluetooth 4.0 Pebble Smartwatch 25:12 - Security 26:59 - Development Interface 29:22 - Sensus Release Market Strategy Leap Motion Picks i-calQ (Rod) Flow DJ Software (Andrew) MIKMIDI (Andrew) Bluegiga (Andrew) QONQR (Jaim) Airbnb (Chuck) Delta Airlines (Chuck) CARROT (Joel) Harvest (Joel) Next Week High Performance Core Data with Matthew Morey Transcript ROD: The audience is listening. CHUCK: Hey everybody and welcome to Episode 29 of The iPhreaks Show! This week on our panel, we have Andrew Madsen. ANDREW: Hi from Salt Lake City! CHUCK: Jaim Zuber. JAIM: Hello from Minneapolis! CHUCK: Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: I’m Charles Max Wood from DevChat.tv. This week, we have a special guest and that’s Joel Stewart. JOEL: Greetings also from Minneapolis! CHUCK: Joel, do you want to introduce yourself for those of us who may not know who you are? JOEL: Sure! I’m currently a VP of Engineering at a company called Canopy up in Minneapolis. We’re a startup that is focusing on iPhone accessories. We do everything from hardware all the way up to stack to applications, then we part with a lot of content providers to integrate our functionality with our hardware inside their applications as well. Me personally, I’ve been doing the new game development for the last 6 or 7 years and I recently gotten involved in hardware. And yeah, [that’s] about it. CHUCK: Awesome. So you’re going to make a video game controller for the iPad? JOEL: Oh, yeah. CHUCK: What kind of hardware things are you building? JOEL: Well, our first product is called Sensus, and it is an iPhone case. It adds pressure sense with multi-touch panels to the back of your iPhone and also the edges. So, it can rename with functionality such as squeezing to scroll as opposed to using a thumb on the front of the screen to drag the contents around; you can just squeeze the edges and the content will automatically scroll. We do a lot of other things such as moving that touch and drag functionality to the back, moving environments as oppose to characters in the front; just adding an extra layer of interactions for your applications, for your games through the hardware. It’s attached to your iPhone through the Lightning connector right now, and it is part of Apple’s MFi program, which is made for iPhone. You have something to plot for and it has the entire slot for documentation that general public typically doesn’t get access to. CHUCK: Interesting. Is there some kind of trick to building hardware for iOS devices? JOEL: Certain metric. It’d be similar to most hardware products you create. You have a lot of industrial design (basically the plastics), a lot of mechanical engineering which is identifying what materials go into it, electrical engineering laying up those boards, firmware development, software development. I know it’s a much larger undertaking in just writing software, but process is a lot longer, it’s a lot more expensive, and it’s not easy, that’s for sure. ROD: Do you have to provide a driver to go with the hardware? JOEL: For the most part, no, since we’re talking through Apple’s Lightning connector; most of that protocols are already established so they provide a lot of documentation as to how to talk to the core operating system, iOS,
Panel Kevin Munc (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:27 - Custom Integration for iOS 02:58 - Jenkins CI 05:49 - Running Unit Tests from the Command Line 08:10 - Custom Integration (CI) 15:46 - Report Tools GCover Cobertura PlistBuddy 19:19 - Distribution TestFlight 21:50 - Continuous Deployment 24:47 - Travis CI 25:15 - Cloud Options for Setting up CI Hosted CI MacMiniColo TeamCity 27:22 - UI Automation 29:18 - XCUnit Specta Picks Host Xcode Server in a data center (Rod) NSScreencast (Rod) Intro to OCHamcrest (Jaim) Switch Your Control Key (Jaim) Gcovr User Guide (Jaim) Sketch (Kevin) Pixa (Kevin) Next Week Building Hardware for iPhones with Joel Stewart Transcript CHUCK: Hey everybody and welcome to Episode 29 of the iPhreaks Show. This week on our panel, we have Jaim Zuber. JAIM: Hello from Minneapolis! CHUCK: Rod Schmidt. ROD: Hello from Salt Lake. CHUCK: I'm Charles Max Wood from devchat.tv. We’ve got a special guest, and that is Kevin Munc. KEVIN: Hello from Memphis, Ohio. CHUCK: So we brought you on today to talk about continuous integration for iOS. Now, if I remember right, didn’t they add some kind of continuous integration thing to xcode? KEVIN: Yes. There is the bots now with the server, so you can avoid Jenkins if you want to. CHUCK: [Chuckles] KEVIN: It’s still got some limitations. And I think going through the pain with Jenkins ends up giving you more flexibility at this point in time, but it’s a really good sign that Apple is putting some effort and attention on quality and continuous integration. CHUCK: Right. But that's not what you were talking about; you're talking about people using Jenkins? KEVIN: Yeah, that’s where most of my experience is from. I've been doing continuous integration in other platforms for a long time; CruiseControl back in the day, and Jenkins for iOS stuff. JAIM: It’s pretty much the standard that people have been doing Jenkins for a while, would like to get into the bots, but they are not quite ready for primetime is what I'm hearing. Have you played enough around the bots to know that they are not quite ready? KEVIN: Somewhat. And I do sort of run into trouble at different points in time, just trying to know where the configuration options are, especially if I'm trying to back out… I’d like to do some blogging on it, do some speaking on it. So, I'm trying to get more familiar with it because that’s something that is in my wheelhouse here. But yeah, I'm definitely trying to go back and redo some things. And I run in to these issues that I didn’t run into the first time. And then trying to do things like… I usually in my continuous integration setup, there's the basic stuff where you does a build, do the tests, run and pass, and maybe some other stack analysis and reports. I usually try and add other things like have a ping to see if the APIs are healthy or not, and things like that. I haven’t figured out how to time that sort of thing into the new bot stuff. It seems it’s focused on the bare essentials at this point. And so, it’s kind of a lot to expect, I guess. ROD: Do you have to have a separate machine to use bots? KEVIN: No, I've been fiddling with it right on my laptop that I can do my normal development on. You need to get the server app from the app store, and I think you get promo code through the dev portal, so you know to buy it. And then I just run it locally. It has a lot of options on it and then at bottom is the xcode stuff. CHUCK: Nice. So let’s harp back over to Jenkins real quick. So you set up Jenkins on… do you have to run it on a Mac? Like a Mac Mini or something? Or can you run Jenkins on a Linux machine and still do the CI stuff? KEVIN: No. You have to have a Mac.
Panel Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Pete Hodgson (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discus...
Panel Kyle Richter (twitter) Nathan Eror (twitter github) Ben Scheirman (twitter github blog NSSreencast) Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:01 - Kyle Richter & Nathan Eror Introduction Empirical Development 01:18 - The Future of iOS Devices (Speculations) Hardware Controllers Apple TV Latency 04:33 - Building Games on the iOS Platform Sprite Kit Unity Cocos2d UIKit 08:08 - Creative Assets (Art, Sound, Etc.) Infinity Blade II Letterpress Doodle Jump Slender 13:45 - Challenges of Building a Game Artist/Developer Relationships Production Art Tileable Art 22:29 - Tools 26:42 - Optimizations Pre-Allocating Only Rendering What’s Necessary 33:48 - Shaders 36:51 - GameCenter 40:04 - Getting into Game Development Picks Trainyard (Ben) Space Team (Ben) Duolingo (Ben) Game Coding Complete by Mike McShaffry (Ben) Physics of Light - John Carmack (Ben) Bret Victor - Inventing on Principle (Ben) Overcoming iOS Game Memory Limits (Jaim) Big Nerd Ranch Blog (Andrew) Code Signing and Mavericks (Andrew) CocoaColor (Andrew) NinjaHit (Rod) Joybox (Rod) OpenGameArt (Chuck) 080 JSJ Impact.js with Dominic Szablewski JavaScript Jabber #081: Testing Promises for Async JavaScript with Pete Hodgson (Chuck) Linear algebra for game developers ~ part 1 (Nathan) Linear algebra for game developers ~ part 2 (Nathan) Linear algebra for game developers ~ part 3 (Nathan) 3D Math Primer for Graphics and Game Development by Fletcher Dunn and Ian Parberry (Nathan)
Sleep Cycle (Kyle) Pivvot (Kyle) Hungry Shark Evolution (Kyle) Next Week New iOS APIs Transcript CHUCK: Alright, Nathan, how do you say your last name? NATHAN: Eror, just like – CHUCK: Eror, okay. NATHAN: Yeah, just like NSError, except that it spelled differently. KYLE: Your middle initial is “S”, right? BEN: [Laughter] NATHAN: I wish. I’ve considered getting it legally changed. CHUCK: Hey everybody and welcome to Episode 27 of the iPhreaks Show! This week on our panel, we have Ben Scheirman. BEN: Hello from Houston, eagerly awaiting the iPad event. CHUCK: Andrew Madsen. ANDREW: Hi from Salt Lake City and I don’t get to buy anything today. CHUCK: Jaim Zuber. JAIM: Hello from Minneapolis! CHUCK: Rod Schmidt. ROD: Merry Christmas from Salt Lake City! CHUCK: I’m Charles Max Wood from DevChat.tv. This week, we have 2 special guests. We have Kyle Richter. KYLE: Good morning from Key West! CHUCK: And, do you prefer Nate or Nathan? NATHAN: Either one, it’s up to you. CHUCK: Nathan Eror. NATHAN: Hello! I’m also in Houston. CHUCK: Alright. Do you guys want to do a brief introduction since you haven’t been on the show before? KYLE: Sure, we can do that! My name is Kyle Richter. I’m the co-founder of Empirical Development. NATHAN: And I’m Nathan Eror. I am the game and development lead for Empirical Development. CHUCK: Awesome. Nobody plays games on their iOS device, so I’m not quite sure why we have you here. KYLE: No, it’s the passage fad for sure. I suspect that they’ll just be over in the next couple of weeks. CHUCK: Yeah. BEN: Once I get hardware, controllers are really going to ruin it. CHUCK: [Laughs] Do you think that’s going to be a thing? BEN: Yeah, they announced it at dub dub, that you’ll be able to get like sort of a Nintendo like shrink wrapped controller on top of the iPhone. I’m still waiting for one of those to come out. I want to play with one. KYLE: Logitech just released their print ad a couple of weeks ago for their first one. Mysteriously, it shows empty hand is holding a knife saying something’s missing [sound]. BEN: Oh! Awesome. CHUCK: [Laughs]
Panel Sam Davies (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Ben Scheirman (twitter github blog NSSreencast) Jaim Zuber (twitter Sharp Five Software) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:57 - Sam Davies Introduction ShinobiControls 01:47 - Custom UI Controls 04:50 - Design-Time Experience and Documentation 09:49 - When Should You Use Custom Controls? 11:40 - Controls UISlider TableView UIView 25:40 - OpenGL CAEAGLLayer Class Reference 27:01 - Transitioning Custom Controls 30:04 - New for iOS7 Picks The iOS Design Cheat Sheet (Jaim) AFNetworking-ASIHTTPRequest (Jaim) Cocoa Controls (Ben) Lufthansa Airlines (Ben) Samarkand (Ben) Geist Dark (Ben) NSCalendar-EqualWithGranularity (Rod) JVFloatLabeledTextField (Rod) Sublime Text (Sam) Dash (Sam) Introducing iOS7 Day-by-Day (Sam) what-if.xkcd.com (Sam) Next Week iOS Game Development with Kyle Richter and Nathan Eror Transcript BEN: Sounds like you need a shot of espresso, Chuck. [Laughter] JAIM: Do pushups maybe, you know. ROD: Cold shower. CHUCK: Cold shower, yeah. [Laughs] CHUCK: Hey everybody and welcome to Episode 26 of The iPhreaks Show! This week on our panel, we have Rod Schmidt. ROD: Hello from Salt Lake City! CHUCK: Ben Scheirman. BEN: Hello from Houston! CHUCK: Jaim Zuber. JAIM: I’m good enough, I’m smart enough, doggone it, people – sorry. Hello from Minnesota! BEN: [Laughs] JAIM: Can you believe that guy is my senator? CHUCK: [Laughs] JAIM: No. He don’t get back to work. I don’t know what’s going on here. CHUCK: [Chuckles] I’m Charles Max Wood from DevChat.tv, with a quick reminder to go check out GoingRogueVideo.com. I have a 30-minute video on how I went freelance. And we also have a special guest this week, and that’s Sam Davies. SAM: Hello there from Bristol, the UK! CHUCK: Do you want to introduce yourself for the people who don’t know who you are? SAM: Sure! I’m Sam Davies. I work now for a company called ShinobiControls, and we build various different UI controls for both iOS and for Android and things. All kinds of different things; I’m not going to [unclear] you with exactly what we do, but charting and all kinds of different to help people’s [unclear]. I stay at that life as a computer vision researcher back in the day a few years ago. I spent a while of doing that. But Academia just doesn’t really have any money so I had to leave Academia and go do something a bit more applicable so I started doing mobile development and kind of stuff at working machine over a few years ago. Now, I work as a developer evangelist so kind of writing different bits and pieces and teaching people about things as well. I like talking to devs and doing dev work as well. CHUCK: Very nice. We brought you on the show to talk about “Custom UIControls”. SAM: Yup! I guess, sure, I’d talk a little bit about what – what they are and why you would want to make custom UIcontrols. CHUCK: Yeah, that sounds like a good start to me. SAM: UIControls, we all know exactly what UIControls are because we use them all the time, but what that actually means for somebody who’s using something that really helpful for lots of different groups of people including designers, developers, and for the end user as well. They represent a common vocabulary of ways and what you interact with an app. So we’re all used to UIControls in iOS because we have things like UISliders, we have Buttons, we have segment of control, whole selection of different things, and they were really, really useful. But the question always comes when you get to the stage where you want something that doesn’t quite – whether the existing ones from iOS don’t exactly do what you want to do – you want to have something slightly different. An example I always give whenever anybody wants to talk to me about this kind of thing is,
Panel Jeff Biggus (twitterblog) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:32 - Jeff Biggus Introduction HyperJeff Network 01:38 - The Accelerate Framework Audio Video Images Pure Math Functions 11:11 - Accelerate Framework Tricks 12:35 - Clang Extensions 17:30 - Libraries 23:06 - Gotchas 28:39 - Mac -> iOS 31:25 - The Convolution Integral 33:49 - Finding the Accelerate Framework 35:35 - Audio Picks F-Script (Rod & Jeff) Nathen Harvey: Learning Chef (Chuck) Start your free trial of Enterprise Chef (Chuck) Chef (Chuck) Cocoa Literature (Jeff) Next Week Custom UI Controls with Sam Davies Transcript Transcript
CHUCK: Hey everybody and welcome to Episode 25 of the iPhreaks Show! This week on our panel, we have Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: I'm Charles Max Wood from DevChat.tv. I just want to give you another quick reminder that you can find out about my freelancing journey at GoingRogueVideo.com, it's a 30-minute video detailing how I went from laid off to freelancing successfully. We also have a special guest, and that is Jeff Biggus. JEFF: Hello! CHUCK: Since you haven't been on the show before, Jeff, do you want to introduce yourself? JEFF: Sure! I'm a Mac and iOS programmer, I work for my own company, have for about 17 years now. Lately, it's been all Mac and iOS, maybe for the last 7 years or so, and I come from a background that's maybe more science, like academic science, but now I do a lot of just general programming stuff. CHUCK: Awesome. What kinds of things have you been academic-ing or studying or whatever? JEFF: [Chuckles] I used to do a bunch of computational physics stuff. So I was in the physics world for a while, and before that, I was an electrical engineer. It was a lot of very practical engineering type programming. Ugly code that got the job done. CHUCK: Boy! That sounds like what I do! JEFF: [Chuckles] CHUCK: Ugly code that gets the job done. JEFF: Exactly, yeah. Which is basically what I do now; except it's a little more elegant these days. The tools are much nicer. CHUCK: Awesome. So, we brought you on today to talk about the Accelerate Framework. JEFF: Yeah. CHUCK: It's part of the standard suite of the libraries you get from Apple, it looks like. Can you explain briefly what it is or what it does? JEFF: Sure! It's a set of, really, C Libraries. It's called the Framework. Normally, when you hear framework, you'd think Objective-C framework, but this is all C-level calls. The goal of it is to give us set of functions, a humongous set of functions, that can allow you to do common tasks much faster because they're heavily optimized. As a consequence, that actually saves battery life so you get more power and better energy use. I would even like the case that if you get into it, that your code is actually often better; it's cleaner and it's more maintainable going forward. CHUCK: Huh! What exactly is it used for? JEFF: When you look at the framework, it looks like there are basically 3 areas that it seems to hit which is Audio, Video, and Images, and also Pure Math functions. But, since everything under the hood is all just bits, sometimes, whether it's something is an image or audio or math, it's just that your perspective on things. A lot of times, these functions that are in there can be used for even really mundane tasks that you might not be thinking about them as. You might grab an audio function to do something where you’re simply doing some very simple calculation for something that has nothing to do with audio. CHUCK: Got you! ROD: I would imagine game programming would use a lot especially 3D… JEFF: Oh, sure! Game programming seems like the easiest place to get the most immediate impact from this, but also, Video and Image Processing. Actually,
Panel Mike Ash (github blog) Rod Schmidt (twitter github infiniteNIL) Andrew Madsen (twitter github blog) Pete Hodgson (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Ben Scheirman (twitter github blog NSSreencast) Discu...
Panel Patrick Burleson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Ben Scheirman (twitter github blog NSSreencast) Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Pete Hodgson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:27 - Going Rogue Video 00:42 - Patrick Burleson Introduction BitBQ MartianCraft Briefs 01:23 - Build Automation 02:10 - Continuous Integration Changes xcodebuild Ben: Running objective-c tests from the command line (with color) 07:51 - Testing xctool 10:29 - Automation on a development machine 11:04 - Things to Automate 14:14 - XCode 5 Build Automation 20:08 - Automation Bamboo Version Numbers agvtool cupertino (and friends) 29:50 - Certification 33:21 - Build Time Screenshot Lightning guard-xctool-test Picks iOS Background Fetch example (Andrew) sprint.ly (Andrew) ASCIIwwdc (Ben) Blues Junior™ III: Hot Rod (Ben) guitarjamzdotcom (Ben) iOS 7 by Tutorials (Ben) Pappy's Smokehouse (Pete) Go (Pete) Bombay By Boat - Moonlight (Pete) xcoder (Pete) xcodebuild-rb (Pete) Paulaner Oktoberfest Bier® (Jaim) Pitching Radar (Rod) Rich Hickey (Rod) ShareMouse (Chuck) Tweetbot (Chuck) Michael Vey (Chuck) Fogo de Chao (Patrick) Briefs (Patrick) Black Bar (Patrick) Test iOS Apps with UI Automation: Bug Hunting Made Easy by Jonathan Penn (Patrick) Bamboo (Patrick) Alfred App (Patrick) Next Week 64-Bit with Mike Ash Transcript CHUCK: Hey everybody and welcome to Episode 23 of the iPhreaks Show! This week on our panel, we have Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: Ben Scheirman. BEN: Hello from Houston! CHUCK: Andrew Madsen. ANDREW: Hi from Salt Lake! CHUCK: Jaim Zuber. JAIM: Hello from Minneapolis! CHUCK: Pete Hodgson. PETE: Hello from a very warm conference room. CHUCK: I’m Charles Max Wood from DevChat.tv. Before we get going, I want to briefly just remind you that I have put up the GoingRogueVideo.com, where I put up the video talking about how I went freelance. If you’re interested in that, you can go check it out there. We also have a special guest, and that’s Patrick Burleson. PATRICK: Hello from Dallas, Texas! CHUCK: Do you want to introduce yourself since you haven’t been on the show before? PATRICK: Sure! My name is Patrick Burleson. I run BitBQ software, which is BitBQ.com. I also do quite a bit of consulting with MartianCraft, and also MartianCraft.com – they are the makers of the design application called Briefs. CHUCK: Cool! BEN: That was a previous pick of the show! CHUCK: Yup! PATRICK: Awesome! PETE: We should do an episode about Briefs. PATRICK: You should! I will probably get your wrap on the show. CHUCK: That’d be awesome. Then we could do one on boxers. BEN: Yup, quite a history. PATRICK: Yes, Briefs has a very long history. CHUCK: That’d be really interesting. We brought you on to talk about “Build Automation”. PATRICK: Yeah! Build Automation is something that I think everyone should probably definitely look into even if you’re on a team or even a solo developer. That sounds crazy to some people why would a solo developer want to have a build automation…The way I look at it is, on my solo stuff, I want a computer doing as much of the work as I can make it to without me having to get in the way. Automating your build is one of those things where with a click of a button, I can update and ship a new version of any of my products or ship out a beta or whatever. It makes it very, very easy and also reduces the number of mistakes you can make. You don’t have to do anything manually; there’s a chance for a mistake. CHUCK: So it’s just kind of like continuous integration? PATRICK: Yeah, it is a lot like continuous integration. You can use it 2 different ways.
Panel Steve Madsen (twitter github Light Year Software) Andrew Madsen (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Jaim Zuber (twitter Sharp Five Software) Pete Hodgson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:45 - Going Rogue Video 01:21 - Steve Madsen Introduction Light Year Software 02:00 - Networking with iOS WiFi Connection Speedtest.net HTTP Live Streaming 07:58 - Bandwidth and Quality of Connection 12:23 - Network Link Conditioner 15:29 - Reachability 24:27 - Networking Gotchas 26:54 - NSOperation Dependency 29:41 - AFNetworking RestKit 33:54 - Logging of Networking Requests and Response Runscope 38:49 - Networking Technologies 41:27 - WebSockets faye SocketRocket 45:48 - Fallacies of Distributed Computing Picks ARC vs. MRC Performance (Andrew) Machine language: how Siri found its voice (Andrew) Philips hue (Ben) hue (Ben) CopyPasteCharacter.com (Ben) Glyphboard (Andrew) Lawyers (Jaim) Runscope (Pete) estimote (Pete) Acme Pale Ale from North Coast Brewing (Pete) XCOM Enemy Unknown (Pete) RubyConf (Chuck) Airbnb (Chuck) Platform University (Chuck) Little Snitch (Steve) Upton Tea (Steve) Clojure: Enemy of the State (Rod) Hire Rod (Rod) Next Week Build Automation with Patrick Burleson Transcript CHUCK: Hey everybody and welcome to Episode 22 of The iPhreaks Show! This week on our panel, we have Andrew Madsen. ANDREW: Hi! I’m not a robot; I’m just going to [unclear] [Laughter] CHUCK: Ben Scheirman. BEN: Hello! I’m eagerly waiting of the arrival of GTA 5. So if the doorbell rings, I may run to go get it. CHUCK: Alright! Jaim Zuber. JAIM: Hello from Minneapolis! And also, not a robot. CHUCK: Pete Hodgson. PETE: Good morning from…I am not a robot. [Laughter] CHUCK: Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: I’m Charles Max Wood from DevChat.tv. Before I introduce our guest, I just want to make a real quick announcement. This Friday, meaning last Friday when you get this episode, was my ‘Freedom Day’. It was the day I was laid off from my job 3 years ago and went freelance. I’m celebrating that by putting up a free video that kind of chronicles my journey through freelancing and going from laid off to actually making enough money to live on. I’m going to have a lot of lessons that I learned in there and stuff, so if you’re interested, you can get that at GoingRogueVideo.com. BEN: Whoo-hoo! Congrats! CHUCK: Thanks! We also have a special guest, and that is Steve Madsen. STEVE: Hello from the Columbus, Ohio. CHUCK: Can we get you to introduce yourself real quick? STEVE: Sure! I own Light Year Software, which is a small consultancy here in Columbus specializing in Rails and iOS development. I’ve been doing that for about 7 years now since relocating back from the San Francisco Bay Area. CHUCK: Was it named after the unit of measure, or the cartoon character? STEVE: Unit of measure. CHUCK: Okay. STEVE: I was looking for something science-y. CHUCK: Awesome. PETE: What’s the cartoon character? CHUCK: Toy Story. Buzz Lightyear. PETE: Oh! Oh, yeah. CHUCK: Alright, we brought you on to talk about “Networking”. STEVE: Yes! That’s a big topic! CHUCK: I was going to say [laughs] it was kind of a broad topic. What in particular is interesting about networking with iOS or Cocoa? STEVE: Specifically about iOS, obviously, we’re talking about mobile devices. I think it’s safe to say that since mobile devices became as popular as they did with the introduction of the iPhone, the possibilities on how for us to build apps that communicate back to servers or communicate with people nearby have gone up a lot. CHUCK: Yeah, that makes sense.
Panel Aaron Douglas (twitter blog) Ben Scheirman (twitter github blog NSSreencast) Andrew Madsen (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Jaim Zuber (twitter Sharp Five Software) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:11 - Scalable Cloud Apps and iOS Programming 02:51 - iCloud Core Data 04:44 - Scalable Cloud Services Synchronization Amazon S3 Amazon EC2 Parse Syncing Authentication Simperium 09:31 - Use Cases Migraine Diary 12:00 - SDK and Basic Operations PFObject Querying PFQuery 18:11 - Platforms Supported by Parse Android Windows Phone MacOS .NET Unity UI 18:41 - Pros and Cons 25:59 - “Selling” Parse Use to Companies 27:20 - Choosing Parse Windows Azure 32:03 - Realtime Interaction Cheddar 34:17 - Other Services Simperium Firebase Helios Dropbox 38:32 - Advice for Others Appside/Server-side TICoreDataSync Understand Scaling 41:41 - Rolling your own vs using Parse Data Privacy Picks Mac Dev Weekly (Andrew) Gwynne Raskind: Friday Q&A 2012-03-02: Key-Value Observing Done Right: Take 2 (Andrew) 11 Untranslatable Words From Other Cultures (Andrew) Linode (Ben) Digital Ocean (Ben) Big Nerd Ranch talk on API design (Ben) FlatUIKit (Rod) iOS7Colors (Rod) Sylvan Dale Guest Ranch (Rod) Bloons Tower Defense (Chuck) Fieldrunners 2 (Chuck) Base 2 (Aaron) Spark Inspector (Aaron) Simplenote (Aaron) TICoreDataSync (Aaron) Next Week Networking with Cocoa with Steve Madsen Transcript CHUCK: So if I call you Andrew, or if I call Andrew, Aaron, sorry guys… AARON: [Laughs] BEN: Just run with it. CHUCK: Hey everybody and welcome to Episode 21 of The iPhreaks Show! This week on our panel, we have Ben Scheirman. BEN: Happy Apple Christmas Day! And hello! CHUCK: Apple Christmas Day… BEN: Yeah! Today is the launch date. We’re going to find out all about in like an hour. CHUCK: Oh, that’s right! BEN: This would be all over the news by the time this sure comes out… ANDREW: It’s the only thing all of us were thinking about. BEN: [Inaudible] CHUCK: [Laughs] ANDREW: I can’t breathe. BEN: That’s right. We’re already on the clock, Chuck. CHUCK: Okay. BEN: [Laughs] CHUCK: We also have Andrew Madsen. ANDREW: Hi from Salt Lake City! CHUCK: Rod Schmidt. ROD: Hello from Salt Lake City as well! CHUCK: Jaim Zuber. JAIM: Hello! I just returned from the north shore of Lake Superior, where I was teaching berries to code iOS. CHUCK: I’m Charles Max Wood from DevChat.tv. We have a special guest, and that’s Aaron Douglas. AARON: Hey! How’s it going? I’m saying hi from Milwaukee, Wisconsin. CHUCK: Pete would be so proud of me, I didn’t butch your name. AARON: [Laughs] CHUCK: We have you on this week to talk about “Scalable Cloud Apps”. AARON: Yeah, definitely. CHUCK: I asked you before the show, I’m going to ask you again, how does that relate to iOS programming? AARON: I’ve noticed that a lot of us iOS devs come from more of the finite programming that we know – JavaScript and CSS – it’s just this kind of a logical step into iOS app development. I came from a Java enterprise background so I’m very familiar with writing apps that are behind other apps. I noticed that a lot of iOS developers are afraid of integrating their app with a server, and that there’s a lot of apps that have to talk to other users or there’s central data. So I think it’s a really important topic just because apps can be so much more powerful if they are connected with other people. CHUCK: Absolutely. Are you talking about API services like Facebook or Twitter? Or, are you talking about more of the backend systems like Parse? AARON: Yeah, it’s more of the backend systems like Parse.
Panel Jason Felice (twitter github blog Maitria) Pete Hodgson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:08 - Jason Felice Introduction 02:03 - “Expressive Code” 04:35 - iOS Programming in Vim ibtool Xcode 06:39 - Why Vim? Muscle Memory The Tool Chain Polar Puzzles 11:30 - Build Process xctool 12:23 - Testing Kiwi The Objective Vimmer 16:50 - Vim Tactics Code Completion clang_complete Omnicomplete 21:06 - Navigation 23:11 - AppCode 25:22 - Toolchain Wishlist Scheme Lisp Clojure RubyMotion 31:51 - Building and Installing Vim Picks No Mouse Fridays! (Pete) AppCode (Pete) Practical Vim: Edit Text at the Speed of Thought by Drew Neil (Pete) VimCasts (Pete) vimium (Pete) VimGolf (Chuck) Emacs (Chuck) Jason Felice: Getting Started with iOS Development With Vim (Jason) lambdanative (Jason) Nathan Sorenson: Clojure to Native via Scheme (Jason) Next Week Scalable Cloud Apps with Aaron Douglas Transcript PETE: My boy is teething at the moment, and we got up today at 5 o’clock in the morning. That’s nice. CHUCK: [Laughs] CHUCK: Hey everybody and welcome to Episode 20 of iPhreaks! This week on our panel, we have Pete Hodgson. PETE: Good morning from San Francisco! CHUCK: I’m Charles Max Wood from DevChat.tv. We have a special guest, and that’s Jason…is it Felice? JASON: Yeah, it’s Felice, that’s right. Hello from Detroit this time! CHUCK: I do that just to make Pete laugh. PETE: [Laughs] Yeah, it makes me laugh, I freaked out. [Laughs] Oh, I was going to say like you did the episode number, and I was like thinking, “Should I remind him? Because I don’t remind him, I’d keep him say anything.” [Laughs] CHUCK: No, I was seriously actually thinking, “I should ask Jason just to make sure I know how to say his last name,” and I was like, “Nope! I’m going to do this just for Pete.” JASON: [Laughs] PETE: Oh, man. Well, I’m touched. Thank you very much. CHUCK: So Jason, since you’re new to the show, do you want to introduce yourself really quickly? JASON: Sure! That’s probably the hardest question. I have been doing mobile development for, I don’t know, it’s like 3 years or something like that, but it really depends on what you count. I’ve done some of embedded development before that, and some dust wholesome stuff back in the day, something like ’90 something. And mostly, I’ve been on the next person, which is why I found first to home with iPhone stuff, and I’ve done some Android. I think the bigger focus that I have is on creating expressive beautiful code and helping people to do that because I think a lot of people just haven’t been exposed to really expressive code especially when we’re talking mobile environment. PETE: What do you mean by expressive code? This is a good sidebar conversation we can talk about. I’m interested particularly in expressive code in Objective C [laughs]. It’s an interesting language for that kind of stuff I think. JASON: It is, yes. And that brings up an interesting question, which is like ‘how much of the language you have to know before code is expressive?’ Because everybody that I have actually worked with are brought into Objective C into them, like for first couple of weeks, group of programmers who weren’t familiar with it. Like my first 2 weeks, they’re just like, “I don’t even see code. It just looks like ASCII. I’m not even sure what’s going on either.” CHUCK: [Laughs] JASON: That’s the response that I’ve got. And it’s interesting because after a week or 2, they’re like, “Oh, okay! Got it!” I think it has to do with the [unclear] versus the indentation, the way that it uses it being different from most of the languages. PETE: Yeah. JASON: But I’ve seen Kiwi who makes nice expressive tests for the most part that’s sort of the DSL approach.
Panel Cesare Rocchi (twitter Studio Magnolia) Pete Hodgson (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Andrew Madsen (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:31 - Cesare Rocchi Introduction CocoaConf Boston iCloud for Developers: Automatically Sync Your iOS Data, Everywhere, All the Time by Cesare Rocchi 03:53 - Auto Layout Cocoa Auto Layout Guide 04:45 - Resolutions Spring and Struts Localization Right-Left Languages 09:15 - Using vs Not Using Auto Layout Constraints Using Interface Builder 22:40 - Auto Layout & Animation Esoteric Animations 26:53 - ASCII Art 29:46 - Intrinsic Size 33:07 - Apple saying you should have used Auto Layout last year 36:22 - Open Source Tools that give Auto Layout-type Capabilities Wrappers Picks Online 3D Model Converter (Ben) Saint Arnold Icon Gold (Bière De Saison) - Saint Arnold Brewing Company (Ben) NoFlo (Rod) Cocoa Slopes (Rod) Dev Juice: Using your tech support incidents (Andrew) objc.io (Andrew) The Choosatron (Jaim) The Replacements (Jaim) Reveal (Pete) Bitter American (Pete) Teensy 3.0 (Pete) The Best Map Ever Made of America’s Racial Segregation (Chuck) Kindle (Chuck) Kindle for Mac (Chuck) Clean Office (Chuck) FrameAccessor (Cesare) App.net (Cesare) Appsterdam (Cesare) Wasatch Brewery: Polygamy Porter (Rod) Next Week iOS Development with Vim with Jason Felice Transcript CESARE: By the way, I have a whole set of pictures of Starbucks bartenders trying to spell correctly my name and write it on the cup. [Laughter] CHUCK: Hey everybody and welcome to Episode 19 of The iPhreaks Show! This week on our panel, we have Pete Hodgson. PETE: Insert amusing British culture reference here! CHUCK: Ben Scheirman. BEN: Hello from H-Town! CHUCK: Andrew Madsen. ANDREW: Hi from Salt Lake City. CHUCK: Jaim Zuber. JAIM: Hello from Houston! I’m not actually in Houston, but it feels like I’m in Houston. [Laughter] JAIM: It’s like 95 degrees out here in Minnesota. I could like call a van that’s full of ice cream or something, I don’t know. CHUCK: [Laughs] BEN: Yeah! It’s only 87 right now, so you’re actually hotter than us. JAIM: I think we switched. CHUCK: And humid? JAIM: Humid? Not super humid, but yeah, pretty bad. CHUCK: We also have Rod Schmidt. ROD: Hello from Salt Lake City! CHUCK: I’m Charles Max Wood from DevChat.tv. We have a special guest this way, and that’s Cesare Rocchi or Rocci. CESARE: Rocci. Rocci. Right. CHUCK: Rocci. Yeah, I knew that! PETE: You almost did it! CHUCK: I almost did it, yeah. I’m famous I guess for botching people’s last names, but I speak Italian and I read Italian, and Italian’s read like it’s written. Anyway, Cesare, since you’re new to the show, do you want to introduce yourself really quickly? CESARE: Yes! I’m Cesare. Hello from my office, which is in Italy on East Coast in Rimini, to be exact. I’m a iOS developer, I got started in 2007, and yes, that’s before the SDK, the official SDK was released. I did a bunch of client work. Now, I’m focusing on my applications. I speak at conferences; I’ll be at CocoaConf in Boston at the end of October. I write books; my latest book is “iCloud for Developers” published by The PragProg. That’s all. There’s more, but that’s all at the moment. CHUCK: [Laughs] BEN: Is your book like a coping mechanism for iCloud? [Laughter] CESARE: Yeah, kind of. And yes, there is a chapter about Core Data and iCloud. And it’s not anti-pages. CHUCK: [Laughs] BEN: It’s not like, this page intentionally left link? CESARE: No! BEN: [Laughs] CESARE: Though I thought of that [laughs]. CHUCK: It looks and feels like a big band aid for your pain that you have.
Panel Ken Auer (twitter github RoleModel Software) Pete Hodgson (twitter github blog) Andrew Madsen (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Jaim Zuber (twitter Sharp Five Software) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:57 - Software Craftsmanship Defined 01:26 - Manifesto for Software Craftsmanship 03:43 - Apprenticeship Situated Learning: Legitimate Peripheral Participation (Learning in Doing: Social, Cognitive and Computational Perspectives) by Jean Lave & Etienne Wenger Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt 09:25 - At what level do you consider somebody a “Craftsman”? 10:46 - How can you tell somebody is a Craftsman? Pair Programming 15:14 - Empathy One Love For Nurses 20:36 - Code Retreats, Katas, and Reviews RoleModel Software’s Craftsmanship Academy 28:07 - Pairing Partner Knowledge Levels and Learning 31:38 - Professionals and Professionalism 35:26 - Cost vs Value Don't Make Squirrel Burgers Picks Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt (Pete) My Life with Code Reviews (Pete) CodeRunner (Andrew) QuickRadar (Andrew) Rogue Brutal Bitter IPA (Ben) Web Economy Bullshit Generator (Ben) 7 Little Words (Ben) Plants vs. Zombies 2 (Ben) LSNewsletterInvite (Rod) Toastmasters International (Jaim) exercism.io (Chuck) 4 Pics 1 Song (Chuck) Go to User Group Meetings (Chuck) Situated Learning: Legitimate Peripheral Participation (Learning in Doing: Social, Cognitive and Computational Perspectives) by Jean Lave & Etienne Wenger (Ken) Next Week Autolayout with Cesare Rocchi Transcript CHUCK: Hey everybody and welcome to Episode 18 of The iPhreaks Show! This week on our panel, we have Pete Hodgson. PETE: Hello from San Francisco! I can’t think of anything funny to say. CHUCK: Andrew Madsen. ANDREW: Hi from Salt Lake City! CHUCK: Ben Scheirman. BEN: Hello from Houston! CHUCK: Jaim Zuber. JAIM: Hello from Minneapolis! CHUCK: Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: I’m Charles Max Wood from DevChat.tv. This week, we have a special guest, and that’s Ken, is it Auer? KEN: That’s correct! And I’m in Holly Springs, North Carolina. CHUCK: Awesome. We brought you on the show today to talk about “Software Craftsmanship”. KEN: Good! That’s what I came for! CHUCK: Oh, good! BEN: You mean cowboy coding? CHUCK: [Laughs] Cowboy coding… KEN: Not at all. CHUCK: [Laughs] Don’t make him get his gun. BEN: [Chuckles] CHUCK: Do you want to just explain what Software Craftsmanship is? KEN: In a nutshell, I would say caring about the craft and what you’re doing and how you’re building yourself with. I tend to come from the school that Software Craftsmanship as opposed to the people who software craftsman and impress other people [unclear]. CHUCK: [Laughs] I like that. I know a lot of the latter. I know a few other former, too. I’ve talked to few people about Software Craftsmanship before. The one that comes to mind first off is Micah Martin who’s Uncle Bob’s son over at 8th Light. When I talked to him, he actually mentioned the Manifesto for Software Craftsmanship. Is that something that you try and stand by? And, is there a lot of culture and (I’m trying to think of what the right word is), sort of like the Agile Manifesto where there’s all of this extra stuff around it. Does the Software Craftsmanship kind of have that as well? KEN: I think, what are in the Software Craftsmanship Manifesto, if I understand it right because I wasn’t there when they put it up, it’s really just about software people that are often just get them treated like mushrooms; shelved in the dark in the corner if they don’t, and hopefully they go out. The whole idea was, “This is something that we should be proud of and do well.
Panel Brandon Alexander (twitter github blog) Pete Hodgson (twitter github blog) Jaim Zuber (twitter Sharp Five Software) Andrew Madsen (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:19 - Brandon Alexander Introduction Black Pixel Pro iOS 5 Tools: Xcode, Instruments and Build Tools by Brandon Alexander 02:00 - Performance Tooling & User Experience 04:30 - Reproducibility with Experiments 07:50 - Measuring Frame Rate 09:31 - CPU vs GPU 12:56 - Tools Frames Per Second Time Profiler 16:24 - OpenGL ES 17:35 - Performance Tuning for Memory-Bound Applications 19:26 - Memory Allocation 28:16 - Network Requests “ns run loop modes” NSURLConnection 36:14 - Visual Changes in iOS 7 and Performance Tuning 39:05 - Mocking and Stubbing 41:15 - Battery Life 45:24 - Profiling CPU-Bound Stuff Picks mmap (Jaim) appledoc (Andrew) CocoaDocs (Andrew) Cocoanetics (Andrew) Wil Shipley: Pimp My Code, Part 15: The Greatest Bug of All (Andrew) WWDC Videos (Pete) Having a "device lab": picking your supported devices, and test on them (Pete) Instapaper (Pete) Network Link Conditioner (Pete) FormatterKit (Rod) The Mathematical Hacker (Rod) Pivotal Tracker (Chuck) Redmine (Chuck) Xcode (Brandon) Dash (Brandon) Kaleidoscope (Brandon) LLDB Python Reference (Brandon) Next Week Software Craftsmanship with Ken Auer Transcript [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces fit together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 17 of The iPhreaks Show! This week on our panel, we have Pete Hodgson. PETE: Hello, hello from San Francisco! CHUCK: Jaim Zuber. JAIM: Hello from Minneapolis! CHUCK: Andrew Madsen. ANDREW: Hi from Salt Lake City! CHUCK: Rod Schimdt. ROD: Hello, hello from Salt Lake! CHUCK: I’m Charles Max Wood from DevChat.tv. This week we have a special guest, and that is Brandon Alexander. BRANDON: Hello! I’m coming from Atlanta, Georgia. CHUCK: Since you haven’t been on the show before, do you want to give us a brief introduction, let us know who you are? BRANDON: I’m currently a iOS and hopefully Mac developer for Black Pixel. I do a lot of the client development work and test as much as I can a lot of our products. I’m also an author, a conference speaker, and I’ve also done a training video to appear soon. CHUCK: Nice! Sounds like fun! What book did you write? I’m curious… BRANDON: The book I wrote is called “Pro iOS 5 Tools”. It’s a couple of versions of iOS old, but the techniques in the book are still completely valid today. CHUCK: Very nice. Alright, we’ll tell people to go check it out. We brought you on the show to talk about “Performance Tuning” for your iOS app. I think it’s interesting; we’re talking about a resource-constrained environment. Is it about the user’s experience? Or, are there other concerns as well that we’re trying to optimize for? BRANDON: Ultimately, it’s about the user experience. If you try to implement something and the user doesn’t have a good experience with it, or it does something over the phone like battery life, you might want to rethink that feature or rethink the assumptions of your application.
Panel Andrew Madsen (twitter github blog) Pete Hodgson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Ben Scheirman (twitter github blog NSSreencast) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:33 - The Apple Developer Portal 01:57 - When the portal goes down 05:35 - What the Portal Does iBooks System Status 07:20 - Certificates and Provisioning Profiles Wildcard Certificate nomad cupertino shenzhen venice 17:50 - Managing the Device List 21:45 - Clients and Developer Accounts 23:00 - NDA 27:04 - Submitting Apps to the App Store 29:04 - iTunes Connect 34:24 - Rejecting Apps 37:46 - Apps on Particular Devices Version Requirements 44:05 - Entitlements 44:44 - TSIs Picks FontAwesome-for-iOS (Rod) When to use -retainCount? (Andrew) Strange Loop (Pete) Boxen (Pete) Homebrew (Pete) The Changelog (Pete) Brian Gorby - AppResigner: Easily re-sign iOS apps (Ben) Apple - Support - iPhone - Enterprise (Ben) Average App Store Review Times (Ben) Brian Stevens / Data Porters (Chuck) Canvas by Instructure (Chuck) Wistia (Chuck) Next Week Performance Tuning with Brandon Alexander Transcript [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 16 of the iPhreaks Show! This week on our panel, we have Andrew Madsen. ANDREW: Hi from Salt Lake City! CHUCK: Pete Hodgson. PETE: Hello from San Francisco where BART is not striking here. BEN: [Chuckles] CHUCK: Where what is not striking? BEN: BART. CHUCK: BART. PETE: Bay Area Rapid Transit. CHUCK: Rod! ROD: Hello from Salt Lake City! CHUCK: And we also have Ben Scheirman. BEN: Hello from Houston where it's 180 degrees! [Laughter] CHUCK: I'm Charles Max Wood from DevChat.tv. Real quickly, one of the reasons that I do this show is so that I can get work. So if you need backend work for your iPhone application and you're interested in using Ruby on Rails, I am available for hire! Alright, well let's get to the show! This week, we were talking about and having a discussion on the "Apple Developer Portal", when it's working. [Chuckles] ANDREW: Which is, sort of mostly right now. BEN: Yeah. We'll be back soon [laughs]. CHUCK: Yup. PETE: Except not soon. [Laughter] PETE: For some definition to see. CHUCK: Yeah. ANDREW: Oh, man! BEN: Yeah. They have a very loose definition of soon, I think. PETE: [Chuckles] BEN: Do we want to start off by just talking about what happened there? I don't know if anybody has any like behind the scenes info on the portal being down, but from what I heard, they detected some sort of hack attempt. And then shortly there after, this, I think he was an Israeli hacker, or I shouldn't say hacker, security researcher, came out and said -- CHUCK: [Laughs] BEN: "I successfully exploited this thing, and I told you about it and filed a radar. I just wanted to see how deep it went," so he pulled out, I don't remember how many users' contact info from the Dev Portal, and he posted a little screencast on the type of data he got and the level. I don't know if that -- they seem to be related because it was like around the exact same time.
Panel Jaim Zuber (twitter Sharp Five Software) Ben Scheirman (twitter github blog NSSreencast) Rod Schmidt (twitter github infiniteNIL) Andrew Madsen (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:10 - Jaim Zuber Introduction 02:15 - Integrating somebody else’s code into your project without using Cocoapods Dragging & dropping source files Static Library Approach Frameworks Circumventing 10:38 - Cocoapods Libraries Cocoa Controls 12:37 - Frequently Used Pods AFNetworking RestKit ocmock Kiwi SVProgressHUD BlocksKit 15:29 - Getting a Pod into a Library or Application Versioning Multiple Targets Specifying a Path to a Repository Handling Multiple Platforms 28:07 - RubyMotion and Cocoapods motion-cocoapods 29:29 - Using Cocoapods on Client Work 30:08 - Testing 32:17 - Creating Your Own Pods Hosting Dependencies Picks Objective-C Modules (Andrew) UTAsync (Jaim) CocoaPods Xcode Plugin (Rod) VVDocumenter (Rod) CocoaDocs (Ben) cocoapods-xcode-plugin (Ben) Getting Things Done by David Allen (Chuck) Omnifocus (Chuck) Next Week The Developer Portal Transcript [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 15 of the iPhreaks Show! This week on our panel, we have Ben Scheirman. BEN: Hello from Houston! CHUCK: We have Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: Andrew Madsen. ANDREW: Hello also from Salt Lake! CHUCK: And we have a new guest panelist, that is Jaim Zuber. JAIM: Hello from Minneapolis! CHUCK: Do you want to introduce yourself really quickly since you're new to the show? JAIM: Sure, happy to! Independent consultants, I've been doing iOS stuff for about 2-3 years; before that, I did some kind of .NET stuff. Way before that, I did a lot of C++ and C stuff in kind of the past life. But, yeah, I'm doing iOS right now, mobile stuff, and enjoying it! CHUCK: Sounds good! I'm Charles Max Wood from DevChat.tv. This week, we're going to talk about "CocoaPods". BEN: Yay! CHUCK: [Laughs] ROD: [Chuckles] JAIM: I'm cuckoo for CocoaPods. CHUCK: There we go. JAIM: [Laughs] BEN: I'm a super fan of CocoaPods. I wonder if we have any haters in the audience, or on the panel. ANDREW: Yeah, I'm the hater. BEN: [Inaudible] ANDREW: Not really. BEN: Okay [laughs]. ANDREW: I just don't use it. BEN: You say you're the dissenting opinion? ANDREW: I can do that, sure. CHUCK: I've had people basically say, "Well, it's just like having bundler - bundlers of utility in Ruby for iOS!" I was like, "Oh! That sounds nice." But that doesn't really tell me necessarily how it works. BEN: So can we start off by maybe describing what it takes to integrate somebody else's code into your project without something like CocoaPods? ROD: [Chuckles] CHUCK: Yes. Yes, let's frame the public. BEN: Anybody want to describe this for like, say, a moderately complex library? ANDREW: It depends on how complicated the library is. But at its simplest, you can just drag source code from their project into yours and add it to your project, and that's it. But I think,
Panel Pete Hodgson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Andrew Madsen (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:31 - Andrew Madsen Introduction Mixed...
Panel Ben Scheirman (twitter github blog NSSreencast) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:09 - Backend Experience 01:49 - Connecting to APIs & Synchronization Windows Azure Mobile Services iCloud Wasabi Sync TICoreDataSync Buoy Explorer 07:10 - Third-party APIs OAuth Instragram Stripe 11:57 - Parsing NSXMLParser NSXMLDocument Cocoa with Love: Using libxml2 for XML parsing and XPath queries in Cocoa libxml 18:18 - JSON RestKit 22:38 - Libraries AFNetworking 31:02 - Building Backends for iOS Applications DeliRadio 35:05 - Security SSL Pinning Charles API Keys Secrets 41:28 - Support Caching NSURLCache 45:34 - Charles Picks objc.io (Rod) Mackie | Onyx Blackjack 2x2 USB Interface (Ben) Runscope (Ben) Daring Fireball: Markdown Syntax Documentation (Chuck) Next Week Debugging Transcript [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 13 of the iPhreaks Show! This week on our panel, we have Ben Scheirman. BEN: Hello from Houston! CHUCK: We also have Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: I'm Charles Max Wood from DevChat.tv. This week, we're going to be talking about "Connecting to Backend APIs and just Backend Systems" in general. I'm curious, how much of this kind of thing have you guys done in the past? BEN: That's pretty much the central part of any app that we develop. Most apps aren't really self-contained; it's a functionality. A lot of them required data that's accessible somewhere else. Or, even if you generate the data on the device, usually, people want to access that data elsewhere as well. So sometimes, you can consider things like iCloud, but that's more of an Apple-centric solution if you're billing it out for the web or for multiple platforms, and maybe you would consider building your own API and synchronizing with that. CHUCK: When you're talking about building your own API, I know that there are these syncing services out there that you send data to it and it does something with it, do you know under what circumstances that would be a good idea versus building your own API that does specific things with the data on the backend? BEN: It really depends on where, how much focus you have, how much time do you have to build something and where your skill set lies. For folks who aren't server-side developers, building an API is actually a tall order, and there are plenty of solutions out there that will do that for you at the cost of, sometimes flexibility, sometimes data portability, and you're sort of at the whim of the interface that they provide for you. But there's systems like Windows Add/Removal services, which allow you to just focus on your part - the mobile client portion of it. But they have support for saving data and sending push notifications, that sort of thing. There's also parse and there's just a bunch of others out there that can synchronize data. Some of them are focused purely on synchronizing Core Data models. So there's iCloud Core Data, which receives some sort of a lot of negative press,
Panel Sam Soffes (twitter github blog) Pete Hodgson (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:13 - Sam Soffes Introduction Seesaw/@Seesaw 01:46 - Roon.io/@roon_app Drew Wilson Octopress 03:03 - Open Source in iOS Writing Tests Flurry TestFlight PLCrashReporter 09:00 - Open Sourcing Projects cheddar-ios Licensing 13:19 - Shared code between iOS and Mac 004 iPhreaks Show - Mac Development with Josh Abernathy Categories 17:48 - Contributions, Pull Requests & Bug Fixes 20:15 - Open Source Libraries CocoaPods 28:40 - Finding Reliable Libraries Rating Activity READMEs Cocoa Controls 32:44 - Contributing to Open Source Projects Consistency (tabs vs spaces) Testing Squashing Commits Submitting Code/Changes 38:09 - Cleaning Up Pull Requests 41:08 - Open Source at Seesaw SEEActivityIndicatorView Picks semver.org (Ben) Anker Astro3E Portable External Battery Pack (Ben) Cards Against Humanity (Ben) Travis CI (Pete) Pete Hodgson: Using Travis CI and xctool to build and test iOS apps (Pete) Reading Application Licenses (Pete) AppCoreKit (Rod) WatchESPN AppleTV App (Rod) Put Objective-C Back On The Map (Ben) David Siteman Garland: Create Awesome Online Courses (Chuck) How to Write a Nonfiction eBook in 21 Days by Steve Scott (Chuck) Amazon Prime (Chuck) Kickoff App (Sam) redcarpet (Sam) Next Week Backends Transcript [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 12 of iPhreaks! This week on our panel, we have Pete Hodgson. PETE: Buongiorno from rainy San Francisco this morning! CHUCK: Ben Scheirman. BEN: I can give you a very jet lagged hello from Houston! CHUCK: Rod Schimdt. ROD: Hello from Salt Lake City! CHUCK: I'm Charles Max Wood from DevChat.tv. This week, we have a special guest and that's Sam Soffes. Alright! SAM: Hello! CHUCK: Do you want to introduce yourself real quick? SAM: Sure! I live in Kentucky right now. I work in a company called "Seesaw". I'm working on a bunch of little projects; Roon had been my main side project right now. CHUCK: Awesome. BEN: That's Roon, R-O-O-N.io, right? SAM: You got it! BEN: Yeah, I'm primed I've got the best username. All I need to do now is blog a little bit. [Laughter] BEN: So Roon is like a blogging platform. What makes it kind of compelling in comparison to some of the other things that are out there? SAM: It's a product I did with Drew Wilson. If you're not familiar with his work, he's a spectacular designer. I always wanted it that makes it really simple that we wanted to use, and hopefully other people wanted to use, too, so he just made something really simple that's really beautiful, and there's also a native iPhone app. The iPad app is like the universal, it's almost done; I'm submitting it, hopefully, this week. And we have a Mac app in the Pipeline. It's just like we wanted to make a really good writing experience that's simple and pretty and hopefully people like it. CHUCK: Awesome. BEN: Yeah,
Panel Pete Hodgson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:06 - Web Apps vs Native Apps HTML UIWebView Platform Coverage vs User Experience 04:48 - Uncanny Valley Effect 06:18 - Frameworks Sencha Touch Appcelerator Titanium SDK PhoneGap Kony 08:37 - Mobile vs Web Experience 13:15 - Uncanny Valley Effect Toy Story vs Polar Express 15:20 - Scrolling of Web Views 17:04 - Making Smart Technology Choices Platform Reach 22:13 - Access PhoneGap Calatrava 25:29 - Focus 28:18 - Exposure and Discoverability 30:20 - Cross-Platform Tradeoffs 32:21 - Offline Access HTML5 App Cache Every Time Zone 35:45 - HTML Presentation Frameworks jQuery Mobile 059 JSJ jQuery Mobile with Todd Parker Picks Calatrava (Pete) Iain Banks (Pete) Elixir (Rod) The Power Formula for LinkedIn Success: Kick-start Your Business, Brand, and Job Search by Wayne Breitbarth (Chuck) Twitter Bootstrap (Chuck) HTML5 Rocks (Chuck) Next Week iPhreaks Show: Open Source with Sam Soffes Transcript [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 11 of iPhreaks! This week on our panel, we have Pete Hodgson. PETE: Good morning! CHUCK: Rod Schmidt. ROD: Good morning! CHUCK: I'm Charles Max Wood from DevChat.tv. This week we're going to be talking about the tradeoffs between "Web Apps and Native Apps". One of the things that kind of made me want to talk about this was that I remember a while ago, 37signals came out and basically said, "We're not going to write iPhone Apps or Android Apps for our products. We're just going to make mobile versions of the websites and people could just use that," and I thought that was really interesting. So I'm curious with you guys, what you see as the tradeoffs between one or the other. ROD: Well, since they've changed a little bit, they're now using RubyMotion for their Basecamp App mixed with some web technology, so now they're kind of hybrid. PETE: I think that's a really good point. When I talk about this stuff to clients, I say like the question of Web versus Native, the answer is "Yes". And really it's not like, "Should I do Web? Or, should I do Native?" It's "Where should I sit on the spectrum between Fully-Native and Fully-HTML?" Actually, not that many people go to [Inaudible], so there's not that many products that don't have any installed app or tool, and there's not that many products that don't use the web at some point inside of their, even if it's a Native App, a lot of apps still have webby stuff inside of them; that's sometimes surprising. CHUCK: What do you mean by webby stuff? Are you talking about -- PETE: Even just something as simple as HTML, an HTML View. Let's say you're doing legal disclaimer as the classic example they always use, you're doing legal disclaimers for your app, you could do the layout and mock up and stuff in code. Or, you could just write some simple HTML, shove it in the UIWebView, and embed it in your app. That's normally about a way to go. CHUCK: Yeah, that was what I was wondering; it's if they were using UIWebView,
Panel Ben Scheirman (twitter github blog NSSreencast) Rod Schmidt (twitter github infiniteNIL) Pete Hodgson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:22 - Launching a UIWebView and pointing it to a remote URL Autoplay Streaming over 3G or LTE 03:01 - HTTP Live Streaming AVPlayer MPMoviePlayerController MPMoviePlayerViewController Microsoft Silverlight AV Foundation 11:24 - AVPlayer Asynchronous Key Loading Protocol AVURLAsset Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS by Chris Adamson Key-Value Observing (KVO) Deli Radio AVAudioPlayer 19:42 - Use Cases System Sound Audio Categories Playback Control AVQueuePlayer 32:21 - Core Audio Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS by Chris Adamson Adding effects to audio and video AV Audio Mix Echo 38:51 - Interruption 42:04 - Network Connections Network Link Conditioner in Lion - Matt Gemmell 44:07 - .MP3, .CAF, .AIFF, .AAC 45:32 - Transcoding Zencoder M3U Picks Audacity (Rod) Customers (Rod) The Little Redis Book by Karl Seguin (Ben) MMDrawerController (Ben) MacBuildServer (Ben) OpenEmu (Ben) Reveal App (Pete) Snap CI (Pete) Buildozer (Pete) ThinkGeek (Pete) Commit (Chuck) Candy Crush Saga (Chuck) Mini Golf MatchUp (Chuck) Portal (Chuck) Next Week Web Apps & HTML5 vs Native Apps Transcript ROD: I'd get my Dad a Darth Vader helmet...because he's my father. BEN: Yeah, I got it. [laughter] [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 10 of iPhreaks! That's right, we're on the double digits now! This week on our panel, we have Ben Scheirman. BEN: Hello from NSScreencast.com! CHUCK: Rod Schmidt. ROD: Hello from Salt Lake! CHUCK: Pete Hodgson. PETE: Hello from thepete.net! [Ben laughs] CHUCK: And I'm Charles Max Wood from DevChat.tv! This week we are going to be talking about "Audio and Video" in your apps. BEN: So this is where you just launch a UIWebView and point it to remote URL and then you're done? PETE: I did that once. CHUCK: All the games that I play, I have to turn the sound off on them. PETE: I actually did do that once, Ben. BEN: Yes, it's the quick and easy way to do it. PETE: Yup, it was surprisingly good. I discovered, we're going to jump straight into rearcane pit of noise, but didn't let you do "Autoplay" on video; Apple doesn't want you to do that. Can you still not do that if you're using native video? BEN: You can do whatever you want with the native stuff. PETE: Okay. So for the web one, you can't. But this -- BEN: I think it's just kind of the Safari limitation... PETE: Yeah [chuckles]. CHUCK: Every browser should do that. That rise me asked, too. PETE: I think they say it's a battery issue more than anything else like they don't want you firing up the radio to download like 50 maybe, to start offering conserve concept. BEN: Yeah, they have gotten a little bit more strict on the rules for that, and I don't remember the exact numbers off the top of my head.
Panel Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:18 - Interface Builder 01:55 - Custom-designed interfaces 02:32 - Tips and Tricks 03:04 - Interface Builder Buttons and Functions File’s Owner First Responder The Responder Chain Events/Actions Objects Elements Views Outlet Storyboards Segues/Segways 09:39 - Cons of Using Interface Builder Team Environments 13:13 - Custom Work Writing a custom UI 14:52 - Controllers GLKit Table View 19:09 - Static Cells and Storyboards 21:23 - Dynamic Prototypes and Prototype Cells 23:23 - Getting a Table View Cell into the Table View 24:48 - Rod’s Apps Numerology Numerology Baby Namer 25:29 - Rejection from the App Store 27:50 - Gestures 30:19 - Calendar View Picks NSBrief: Episode #97: Jon Reid (Rod) Ember.js (Rod) Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement by Jim R. Wilson (Chuck) Eventbrite (Chuck) Next Week Audio and Video in Apps Transcript [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 9 of iPhreaks! This week on our panel, we have Rod Schimdt. ROD: Hello from Salt Lake City! CHUCK: And I'm Charles Max Wood from DevChat.tv. And due to a little bit of a scheduling snafu, it's just the two of us today! So, you get to hear more from us. ROD: Yeah, if I ain't got a chance to talk. CHUCK: Yeah. I think Pete and Ben and I all suffer from the same "we like to hear ourselves talk" and we always have something to say [laughs]. ROD: [chuckles] Alright! CHUCK: Anyway, let's get this started. Our scheduled topic today is "Interface Builder and Storyboards", which is something that I've actually played with a little bit - all the time. ROD: And do you have questions about it? Or, issues you want to talk about it? CHUCK: Not really. I mean I haven't done anything too complicated with it. And for the most part, you drag the Elements out there; you link them up with the actions on your ViewController, and it just kind of works! ROD: Okay. So you just want to talk about how they work and what you can do with them? CHUCK: Yeah, I'm sure I'll have questions. I guess one question right off the bat is what if you have some kind of like custom-designed interface? Can you do that with Storyboards or Interface Builder? ROD: Not really. Interface Builder are designed for most of the built-in controls. When you want to do custom work, you basically just put a View out there, set its class, and then you have to write all the custom code for that class. CHUCK: Oh, interesting. ROD: There the step on how you do it. So, if you're doing a lot of custom work, it's mostly good for just laying out the basic structure of your user interface, and then you go from there. CHUCK: Nice. I'm looking at it here; I actually pulled it up so I could actually look at it and ask you questions about it. But before we get into that, are there any tricks that you use to make it easier to reason with? ROD: What do you mean by reason with? CHUCK: Well just, are there any things that make Interface Builder easier to use that you do? ROD: No.
Panel Ben Lachman (twitter blog) Pete Hodgson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Ben Scheirman (twitter github blog NSSreencast) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:30 - Ben Lachman Introduction Acacia Tree Software Nice Mohawk SousChef Ita 03:12 - Prototyping and Mockup Tools Adobe Photoshop Pen and Paper Forecast Interface Builder Balsamiq Mockingbird Keynote Kung-Fu Graffletopia: OmniGraffle Stencils Prototypes 15:25 - What makes a good prototype 18:04 - Building a good prototype Make a prototype; not a concept Start with pen and paper 19:39 - Issues that prototyping helps you identify Discoverability Features Visibility Features 20:11 - Solving issues and sharing prototypes with clients Usability Testing Screenshots Briefs 2 27:52 - Laying out your application Code Spikes 32:43 - Prototyping for Clients 35:29 - Building Prototypes in HTML Briefs 2 37:34 - Using iPads/etc. instead of pen and paper Paper SketchBook Pro 39:09 - Buttons Picks iPhone Stencil Kit (Ben) Play by Play: Neven Mrgan | PeepCode Screencasts (Ben) Skala Preview (Ben) Xscope (Ben) UI Stencils - iPhone Sketch Pad (Rod) Screen Time (Rod) iPhone Stamp for UI Sketching - The Russians Used a Pencil (Pete) POP - Prototyping on Paper (Pete) PocketCasts (Pete) Spaced (Pete) iOctocat (Chuck) ioctocat on GitHub (Chuck) Briefs 2 (Ben L) Coworking (Ben L) Paint Code (Ben L) Bow Truss (Ben L) Next Week Interface Builder Transcript PETE: I’m trying to decide who I would rather work for... [Chuck laughs] PETE: That mob would be more interesting, but probably a little bit more scary. [This show is sponsored by The Pragmatic Studio. The Pragmatic Studio has been teaching iOS development since November of 2008. They have a 4-day hands-on course where you'll learn all the tools, APIs, and techniques to build iOS Apps with confidence and understand how all the pieces work together. They have two courses coming up: the first one is in July, from the 22nd - 25th, in Western Virginia, and you can get early registration up through June 21st; you can also sign up for their August course, and that's August 26th - 29th in Denver, Colorado, and you can get early registration through July 26th. If you want a private course for teams of 5 developers or more, you can also sign up on their website at pragmaticstudio.com.] CHUCK: Hey everybody and welcome to Episode 8 of iPhreaks! This week on our panel, we have Pete Hodgson. PETE: Hello! I'm so impressed with Charles Max Wood newest episode with or without any thinking, well done! CHUCK: I looked it up beforehand. [Pete chuckles] CHUCK: Rod Schimdt. ROD: Hello from Salt Lake! CHUCK: Ben Scheirman. BEN: Hello from hot and humid Houston! CHUCK: I'm Charles Max Wood from DevChat.tv. And we have a special guest today, and that's Ben, is it Lachman? BEN L: Yes, it is! And hello from Athens, Ohio, which is also hot and humid! Probably not as hot as Houston.. CHUCK: So you want to introduce yourself really quickly? BEN L: Yeah! I've been around the Mac and iOS dev world for about 10 or 12 years at this point; actually, I guess that would be before the iOS dev world really was around. And I write software for a couple of companies of my own. One is "Acacia Tree Software", and the other is newer and I started with a business partner in Cleveland, Ohio named Bob Cantoni and it's called "Nice Mohawk". So yeah, we write some iOS software, some Mac software, and we do contract work as well. CHUCK: Awesome. I'm a little curious before we get into what we're going to talk about, how much iOS and Mac stuff do you write as products that you sell versus client stuff that you do for other people? BEN L: We've done a fairly good job, for like a two-man shop,
Panel Pete Hodgson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Ben Scheirman (twitter github blog NSSreencast) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion DevChat.TV Indiegogo Campaign 0...
Panel Saul Mora (twitter github NSBrief) Rod Schmidt (twitter github infiniteNIL) Pete Hodgson (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:22 - Cora Data Core Data Programming Guide SQLite fmdb Transient Entities and Core Data | Cocoa Is My Girlfriend 07:50 - Stores and Contexts NSManagedObject Persistent Store Coordinator Core Data Editor Creating a CoreData Model in Code | Cocoanetics 21:17 - Faulting and Fetching NSFetchRequest The Law of Leaky Abstractions -com.apple.CoreData.SQLDebug 1 Base 2 CouchDB MongoDB TokyoCabinet 27:48 - Is Core Data the right tool for the job? Brent Simmons: On switching away from Core Data 29:46 - Managed Object Context MagicalRecord Core Data and Threads, Without the Headache | Cocoa Is My Girlfriend Core Data: Data Storage and Management for iOS, OS X, and iCloud by Marcus S. Zarra 38:22 - Importing Data 40:08 - Predicates Predicate Programming Guide Picks mogenerator (Ben) PonyDebugger (Ben) xctool (Pete) Neo4j (Pete) AeroPress (Pete) TICoreDataSync (Rod) Countly (Rod) Heil PR-40 Dynamic Studio Recording Microphone (Chuck) Roland R-05 Studio WAVE/MP3 Recorder (Chuck) iOS Programming: The Big Nerd Ranch Guide by Aaron Hillegass (Chuck) NSBrief (Saul) Wasabi Sync (Saul) Sip (Saul) Star Trek II: The Wrath of Khan (Saul) Next Week WWDC Transcript SAUL: I like your style. CHUCK: Hey everybody and welcome to Episode 6 of iPhreaks! This week on our panel we have, Rod Schmidt ROD: Hello from Salt Lake City! CHUCK: We also have Pete Hodgson. PETE: Good morning from San Francisco! CHUCK: We also have Ben Scheirman. BEN: Hello from Houston, Texas! CHUCK: I'm Charles Max Wood from DevChat.tv. And we have a special guest this week, that is Saul Mora! SAUL: Hello from Denver! CHUCK: Denver? I thought you said Fort Collins? Is that not the same thing? SAUL: [laughs] No, that's where the beer is. Okay [laughs] CHUCK: Oh, I see. SAUL: Right. But yeah, that wouldn't be so bad to go and get some beer now. CHUCK: If you go and get too much beer, is it a one-way trip [inaudible]? SAUL: [chuckles] Yeah, well, I have to take some guest with me. CHUCK: Oh, here you go. SAUL: But no...yeah, that's where the New Belgium Brewery is, so I take guests over there quite often. So for anybody comes and visit me in Denver, definitely head on up there. CHUCK: Well I don't drink alcohol, but I'm going to be in Denver this weekend. SAUL: Cool! CHUCK: Maybe I'll come and shake your hand, buy you lunch, or something. SAUL: Yeah! Just let me know! CHUCK: Awesome! ROD: You get to be the driver. [laughter] SAUL: There you go! CHUCK: I don't know what my wife would say about that. [laughter] SAUL: Oh, there are plenty of breweries out here to visit. So, we can visit them anywhere. CHUCK: Awesome! Well this week, we're going to be talking about CoreData. Or, do you call it Core Data? SAUL: [laughs] I thought that was an English thing; Pete might know. PETE: I'll refer to it as Core Data! [laughter] PETE: It's the French pronunciation. I still say Data; it's one of the few English things that I still say in the English way [inaudible]. SAUL: So do you say Beta or Beta? PETE: Oh, that's a good (question). I think I say Beta now just because it's like a -- I was going to say just because it's a software thing, but Beta was a software thing. So, I don't know. SAUL: We have gotten to him! Great! [Chuck laughs] PETE: Yeah. My covers are blown. [laughter] PETE: Actually, I'm native Texan. CHUCK: Yeah, you've seen that? Now you only sound cool when you're talking about things other than computers. PETE: Yup. CHUCK: Alright. So CoreData,
Panel Ben Scheirman (twitter github blog NSSreencast) Pete Hodgson (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 00:50 - Xcode Issues Synta...
Panel Josh Abernathy (twitter github blog) Rod Schmidt (twitter github infiniteNIL) Ben Scheirman (twitter github blog NSSreencast) Pete Hodgson (twitter github blog) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 01:25 - Josh Abernathy Introduction GitHub GitHub for Mac GitHub Issues App GitHub Jobs App Lua Corona SDK 03:48 - Differences between writing an app for Mac and writing an app for iOS AppKit UIKit Chameleon twui 05:37 - Model View Controller Model View ViewModel Knockout.js 013 JSJ Knockout.js with Steven Sanderson (JavaScript Jabber) 11:51 - Testing specta expecta OCMock 15:04 - NSTableView Cocoa Programming for Mac OS X (4th Edition) by Aaron Hillegass 17:28 - iOS vs Mac The Rude Awakening for iOS Devs: Josh Abernathy 22:05 - Memory Management 002 iPhreaks Show - Memory Management Garbage Collection ARC 24:32 - Binding 27:23 - Fixing AppKit 32:09 - APIs 33:18 - App Store Sandboxing 36:34 - Resources Cocoa Controls Tweetbot Twitter Mac App The Hit List Things Cocoa Programming for Mac OS X (4th Edition) by Aaron Hillegass 40:47 - Sharing Code Xamarin cheddar-mac cheddar-ios ReactiveCocoa Picks MOO (Ben) Kaleidoscope (Ben) Briefs (Ben) clojurem (Rod) Oblivion Soundtrack (Rod) CloudApp (Pete) MindNode (Pete) LimeChat: IRC Client for Mac (Pete) People are not resources - The Philosophical Developer (Pete) Downton Abbey (Chuck) Downton Abbey at 54 Below - Season 4, Episode 1 Sneak Peek (Chuck) GitHub (Chuck) Daring Fireball Linked List: Using Quartz Composer to Recreate Facebook Home (Josh) Next Week Xcode Transcript BEN: Have you seen that app "Little Inferno" by the guys who created World of Goo? PETE: Mm-mm BEN: It's a great game. It's on MacHeist right now; I think that's still going on. So if you -- CHUCK: Oh, I saw that! BEN: Anyway, so my son is 3 and he's really adept at using the iPad, but he's never really used the computer before so like the whole mouse thing is totally foreign to him. But, he was watching me play this game and he gave it a shot. He's actually learning the click and drag stuff, which is pretty awesome. PETE: Awesome. BEN: I guess the downside is just learning to burn things... [laughter] CHUCK: Nice! BEN: It's just kind of the point of the game. So...I don't know [laughs]. PETE: Yeah. It's a tradeoff, right? BEN: Yes. PETE: Dragging, clicking, burning... CHUCK: Hey everybody and welcome to Episode 4 of iPhreaks! This week on our show we have, Rod Schimdt. ROD: Hello, hello! CHUCK: Ben Scheirman. BEN: Hello from Houston! CHUCK: Pete Hodgson. PETE: Hello from [inaudible], San Francisco! CHUCK: I'm Charles Max Wood from devchat.tv. This week we have a special guest, and that is Josh Abernathy. Did I say that right? JOSH: Yeah! Yeah, you said it right. CHUCK: If that's more than 2 syllables, I'm going to screw it up. JOSH: [laughs] People always get turn off because it's long, but it's just like it looks. CHUCK: Oh, I see. So, do you want to introduce yourself really quickly? JOSH: Yeah! I'm Josh Abernathy. I work at GitHub on the GitHub for Mac App, and various other side things. And yeah, I've been doing Mac and iOS stuff for quite a while now. So hopefully, I'll have something interesting to say about the topic. CHUCK: So is there a GitHub app for iOS? JOSH: We have a couple different iOS Apps. There's an Issues App and there's a Jobs App, neither of them are particularly well-maintained at the moment. So, we kind of try to pretend we don't have any iOS Apps. CHUCK: I see. PETE: I actually tried to use the Issues App the other day... [Josh laughs] PETE: And then I went and look...Is it open source? Is it available kind of the code -- JOSH: No...
Panel Pete Hodgson (twitter github blog) Ben Scheirman (twitter github blog NSSreencast) Rod Schmidt (twitter github infiniteNIL) Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up) Discussion 03:00 - Why don’t people test in iOS? 06:12 - Testing Definitions and the Mechanics of Testing Instruments User Guide TestPyramid 13:00 - Why do we test our code? Why is it worth it? Feedback Communication 19:28 - Practicing TDD (Test-driven development) UI View Controllers 25:33 - Unit Testing is hard 28:01 - Tools Send Testing Kit aka OCUnit Application and Logic Tests Running objective-c tests from the command line (with color) (Ben’s Script based on Eloy Durán’s) Continuous Integration Code Coverage Git Hooks gh-unit Kiwi Cedar RubyMotion Writing Tests for RubyMotion Apps Bacon 42:00 - Frank Selenium Zucchini appium bwoken KIF Calabash Jenkins Writing iOS acceptance tests using Kiwi: Pete Hodgson PublicAutomation Picks TextExpander (Ben) Alfred (Ben) Jenkins (Ben) Oban Scotch (Ben) NSScreencast: Automated Testing with Kiwi (Pete) Rock Climbing (Pete) Scarlett Red (Pete) Test-Driven iOS Development by Graham J. Lee (Rod) 42 (Rod) Test iOS Apps with UI Automation: Bug Hunting Made Easy by Jonathan Penn (Pete) Backbone.js (Chuck) LaunchBar (Chuck) Next Week iOS/Mac & differences with Josh Abernathy Transcript PETE: So what are we talking about this Tuesday morning? CHUCK: I'm not sure, but I think we should write a test for it first. CHUCK: Hey everybody and welcome to Episode 3 of iPhreaks! This week on our panel we have, Pete Hodgson. PETE: Hello from Butte Lake! [Ben laughs] CHUCK: Ben Scheirman...Butte Lake... BEN: Very well done. Very well done. [Ben laughs] CHUCK: Ben Scheirman. BEN: Hello from Houston! CHUCK: We also have, Rod Schimdt. ROD: Hello from Salt Lake City! CHUCK: Sorry, Rod. I was looking at Pete's picture and I was like "No, I already said Pete". [laughter] BEN: Yeah, for those who didn't get the joke we were looking at the transcription from last episode, or from episode 1. And -- CHUCK: Did that get fixed? PETE: It got fixed, yeah. BEN: Okay. So originally, Pete said he's from Berkeley and it came through as Butte Lake, which I thought was hilarious. PETE: I was pretty -- I was looking for the transcript -- it's pretty hilarious how much my accent has closed issues. For whatever personal machine is doing that transcription is definitely challenged by my accent. CHUCK: We're really sorry to the transcriptionist. PETE: Yeah. [laughter] CHUCK: We will pick our panelist more carefully next time. PETE: Oh! It's my fault, huh? [laughter] CHUCK: Anyway...And you can tell I had to ask if it got fixed because I just asked Mandy to do it and assume it's done. PETE: Yeah. No, she fixed it. She fixed it very very quickly. CHUCK: Yeah. PETE: And I'm used to that. I'm living in a [inaudible] when you found out like you have automated voice systems. They often don't work with British accent so I have to put on like a stupid American accent when I'm...operator! [laughter] PETE: Reservations. [laughter] CHUCK: It's funny, too, because a lot of times on those automated systems, they have somebody with a British accent or a fake British accent like speaking. BEN: Yeah. PETE: Yeah. But they didn't understand British. Siri didn't understand British for a very long time because you couldn't get like, if you lived in the US, you couldn't get American, so you couldn't get British Siri to work with like American information. So if I wanted to actually know about anything about America like where I live, I'd have to use the American version Siri, but she couldn't understand my pronunciation. [Ben laughs] CHUCK: So is the British Siri more polite?