February 11, 2020
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 Picks Charles Max Wood: Magician: Apprentice Magician: Master The Man in the High Castle
February 4, 2020
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 Christina Moulton 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*EJr5q4QqkY3hshPLEgJVQQ.png  Code is a Language! Picks Christina Moulton: Cleaning Up With Swift Defer Flour Water Salt Yeast Mischa Hildebrand: XCoordinator  Alex Bush: POODR 
January 21, 2020
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 Christina Moulton Sponsors Sentry– use the code “devchat” for two months free on Sentry’s small plan CacheFly Links Picks Christina Moulton: Finding slow code with Instruments Charles Max Wood: Disney+ Frozen 2
January 7, 2020
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 Picks Christina Moulton: Designing Great Shortcuts Alex Bush: So Good They Can't Ignore You: Why Skills Trump Passion in the Quest for Work You Love Charles Max Wood: It’s a Wonderful Life Holiday Inn White Christmas A Christmas Story
December 24, 2019
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 Picks Gopal Sharma: Alex Bush: The Obstacle Is the Way: The Timeless Art of Turning Trials into Triumph Shawn Clabough: Recreational Hockey
December 10, 2019
In this episode of the iPhreaks Show Charles Max Wood interviews Steve Young, founder of 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 Requesting App Store Reviews Picks Steve Young: Charles Max Wood: Holiday Inn White Christmas
October 29, 2019
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 Picks Abbey Jackson: SF Viewer App Evan Stone: Love Notes to Newton Einstein Paul Hudson: Swiftoberfest Spendo App
October 29, 2019
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 Links iPS 243: Paul Hudson - Writing, Swift, & Writing Swift Picks Abbey Jackson: SF Viewer App Evan Stone: Love Notes to Newton Einstein Paul Hudson: Swiftoberfest Spendo App
October 22, 2019
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 Picks Andrew Madsen: Human Interface Guidelines Infrastructure Peter Witham:  David House:
October 15, 2019
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 Picks Dave Verwer: Advice for Software Apprentices Jaim Zuber: Try it using the RSS feed Andrew Madsen: iTerm 2 Gui Rambo: NES Emulator Part #1: Bitwise Basics & Overview NES Emulator Part #2: The CPU (6502 Implementation) NES Emulator Part #3: Buses, RAMs, ROMs & Mappers Abbey Jackson:
October 8, 2019
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 Picks Rob Whitaker: Jon Gibbins  Design meets Disability  Peter Witham: Quiver
September 24, 2019
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 JSJ 387: How to Stay Current in the Tech Field 31 Days to Build A Better Blog Picks Charles Max Wood: Sometimes it takes time to get what you want
September 17, 2019
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 Picks Andrew Madsen:  Evan Stone: Advanced iOS Summer Bundle - 2019   
September 10, 2019
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 Picks Andrew Madsen:  Jaim Zuber:  Evan Stone:  Brian Voong: 
September 3, 2019
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 Picks   Gui Rambo: Erica Sadun: Original iPhone Battery Life Jaim Zuber: Bear Cam Andrew Madsen: 
August 27, 2019
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  Binary space partitioning  iPS 258: Learning Objective-C as a Swift Developer with Abbey Jackson Picks Abbey Jackson:  Aumi  Petrie Michael: The Thirty Million Line Problem
August 20, 2019
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 Picks Michael Holt:  Evan Stone: Revolution in The Valley [Paperback]: The Insanely Great Story of How the Mac Was Made
July 30, 2019
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 Picks Andrew Madsen: Michael Holt: Donny Wals:
July 23, 2019
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  is designed to home podcasts that speak to all developer communities. Charles also plans 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 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. would like to host these podcasts. Links Charles' Twitter EverywhereJS JavaScript Community EverywhereRB Ruby and Rails Community Find Your Dream Job As A Developer on Facebook Picks EverywhereJS JavaScript Community EverywhereRB Ruby and Rails Community Netlify Eleventy
July 16, 2019
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 Picks Andrew Madsen:  Quefrency - 60%/65% Split Staggered Keyboard  Jaim Zuber:  Michael Holt:
July 9, 2019
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 Picks Michael Holt:  Andrew Madsen: BX-70 Micro Decimator - Atari/C64 Joystick   Igor Kulman:
July 2, 2019
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  Picks Jaim Zuber:  Michael Holt:  Jason Zurita:
June 25, 2019
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  Picks Jaim Zuber:  Michael Holt: Paul Samuels:
June 4, 2019
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 Hassan on Medium, LinkedIn, and Twitter How I Failed 39 Interviews and What I’ve Learned Disjoint Set Union Data Structure in C and Swift Kruskal’s algorithm Swift Cairo developer community Follow DevChat on Facebook and Twitter Picks Hassan El Desouky: Game of Thrones
April 8, 2019
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 Picks Andrew Madsen Afuri Ramen in Tokyo, Japan Dave Delong _ivarDescription _methodDescription Derek Selander Ivars _shortmethoddescription
April 4, 2019
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan CacheFly Panel: Andrew Madsen Guilherme Rambo 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 listeners. Links Mohammad's Twitter Mohammad's LinkedIN ARKit Building Augmented Reality Apps Using ARKit Mastering ARKit for iOS - Coupon Code = iPHREAKS    Picks Andrew Madsen: PSPDFKit and Swift Guilherme Rambo: How Overnight Shipping Works Mohammad Azam: Bad Blood: Secrets and Lies in a Silicon Valley Startup by John Carreyrou American Kingpin: The Epic Hunt for the Criminal Mastermind Behind the Silk Road by Nick Bilton
March 28, 2019
Sponsors Sentry use the code “devchat” for 2 months free on Sentry small plan CacheFly Panel: Andrew Madsen Jaim Zuber Erica Sadun Dave Delong 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  Picks Andrew Madsen: IconJar Dave Delong: The Light of Other Days by Arthur C. Clarke and Stephen Baxter Jaim Zuber: Xcode - Apple Developer Abbey Jackson: CheatSheet - Know your short cuts  
February 28, 2019
Panelists: Andrew Madsen Erica Sadun Guilherme Rambo Guest: Theodore Dubois Links: Guilherme Rambo Erica Sadun how-to-fix-blurry-fonts-on-macos-mojave-with-subpixel-antialiasing/
February 21, 2019
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 Facebook Picks: Guilherme Rambo: Erica Sadun: Refurbished Latest Generation iPad Jaim Zuber: Andrew Madsen:
August 30, 2018
Panel: Gui Rambo Erica Sadun Jaim Zuber Andrew Madsen 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: What’s new in Siri for iOS12? What is a Siri Intent? Creating or defining intents Run Templates NSUser Activity API Siri Knowledge System Are Siri Shortcuts the same thing as custom intents? What variables are used to determine what intents should be shown? Examples of working with e-commerce app and learned activity Can you charge money from an intent? What kind of output or feedback do you get with custom intents? Why isn’t there more Siri capabilities on the Mac? How do you make custom intents? How you help users discover intents? Shortcuts App  And much much more! Links: Picks: Jaim Bear Cam Erica Original iPhone Battery Life Gui Andrew
August 9, 2018
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: Yonas intro XcodeGen Swift command line tool Why bother? Merge conflicts Use with complicated setups How do you define the files? Point at a directory and it will work itself out What’s the output of the XcodeGen tool? Skeptical at first Benefits of checking in vs not checking in XcodeGen project? What do you use to describe the format? How do I set project configurations? Build setting names New documentation for build settings - Xcode Build Settings Reference Does XcodeGen work with CocoaPods? Obscure things you can do with XcodeGen How did you start the project? Xcake and Struct Swift How is Swift for writing tools? What libraries do you use for writing shell commands? Mint Beak And much, much more! Links: XcodeGen Mint Beak Swift Xcode Build Settings Reference CocoaPods Xcake Struct @yonaskolb Yonas’s GitHub Sponsors: FreshBooks Loot Crate Picks: Jaim Rockstar programming language Yonas GitUp Xcode Build Settings Reference
August 2, 2018
Panel: Jaim Zuber Gui Rambo 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: Parveen Intro Used to work with PSP video game development iOS Architecture At Scale - types of scale His talk at AltConf Is there a difference scale w/ dollars and scale /w customers? What are major differences from coming from a large company? Do you run into issues with many customers? Pull Requests and Release Train Release Manager What is good architecture at scale? Definition of good architecture Three things lead to good architecture What are coding style differences? You want to unify models Unification really matters How do you create uniform views? How do you work when code you want to change is handled by another team? Unified router framework Object Mapper How do you combat long compile times? Does Xcode improve compile times? Does Swift provide advantages vs Objective-C? AB Testing at Scale? And much, much more! Links: His talk at AltConf Xcode @kaler Parveen’s GitHub Smartful Studios Sponsors: FreshBooks Loot Crate Picks: Jaim Iron Maiden Pinball Gui Things You Should Never Do, Part I by Joel Spolsky Parveen US Passport
July 26, 2018
Panel: Jaim Zuber Erica Sadun 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: Shai intro How did you get into developing? Grew up interested in technology How was it learning when you’re not a native English speaker? Language barrier Do you consider yourself an Apple developer? Still does some backend work in Swift Tackles whatever challenges come into his path How are React and RxSwift different? React is a technology that is built on one big idea Big idea behind React Is there a model that iOS developers use that is similar to how React/Reactive programming works? RxFeedback Explain ReactiveX Observables & Binding What are the downsides of Rx? Does Rx feel like functional programming, or the delegate pattern? How does Rx simplify your life? How do you avoid the pitfalls in Rx? How does debugging work? And much, much more! Links: RxSwift RxSwift Community Projects React Swift ReactiveX RxFeedback @freak4pc Shai’s Medium Shai’s GitHub Sponsors: FreshBooks Loot Crate Picks: Jaim The Marvelous Mrs. Maisel Erica Github Gists Shai
July 19, 2018
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: About Alex Worked in the digital camera scene previously Bugsee is about 3 ½ years old Had to shut down a previous startup before Bugsee Why did you decide to go in a different direction with mobile development? Software engineer by trade What is Bugsee? Sit in your app and record everything to find bugs for you What is the “everything” that Bugsee records? What kind of overhead is there to recording video all the time? Privacy How Bugsee deals with privacy Privacy depends on the nature of the app What’s the model for users knowing about your privacy policies? What does Bugsee look like to a developer? Traces and Events Timeline Pricing Bugsee for Web Other use cases Rubix Cubes Rubix Cube video And much, much more! Links: Bugsee Rubix Cube video Veritasium on YouTube Techmoan on YouTube @fishmanalex Alex’s Medium Sponsors: FreshBooks Loot Crate Picks: Andrew Techmoan on YouTube Alex Veritasium on YouTube
July 12, 2018
Panel: Andrew Madsen Gui Rambo 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: Will intro How did you get into writing iOS apps? Has interested in technology his whole life What’s your first memory with the iPhone? Never owned an Android His app Chirp for Twitter Why did you make an app just for the Apple Watch? Set out to make a Reddit app for the Apple Watch originally Creating an app for the Apple Watch would set him apart Article on Chirp for Twitter Filling in the gaps Being able to take risks and experiment at his age Indie developer going head-to-head with the big companies Twitterific pulling the Watch app Unify the user experience Using UIkit WatchKit Can’t give the same experience as 1st party apps New with Watch OS5 Apple needs to fix WatchKit Why companies aren’t creating on the Apple Watch What’s the business models for your apps? His app Nano for Reddit Subscriptions for apps to make a living SA Confetti View And much, much more! Links: Chirp for Twitter Article on Chirp for Twitter Twitterific pulling the Watch app UIkit WatchKit Nano for Reddit SA Confetti View @WillRBishop Sponsors: FreshBooks Loot Crate Picks: Andrew FastScripts Field Notes Gui StopTheMadness Will Outcast
July 5, 2018
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: Michael intro 1Password Been working with 1Password for 5 years MoneyWell Unique product that everyone needs 1Password increases your security Works with Have I been pwned? People are as secure online as they think they are What’s it like developing for 1Password? Were you surprised by Apple’s iOS 12 password announcement UI of apps is slowly disappearing Home Pod integration How do you integrate the new password management How is 1Password data stored? How do you store data securely? Is storing data in the keychain enough? How do you keep from getting p0wned? What is unique about working for 1Password How did the change to a subscription model go? Can I still by a standalone license? And much, much more! Links: 1Password MoneyWell Have I been pwned? @MrRooni Sponsors: FreshBooks Loot Crate Picks: Jaim World Cup Michael WhenWorks
June 21, 2018
Panel: Jaim Zuber Andrew Madsen Erica Sadun Gui Rambo 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: Intro to Marzipan UIKits on Mac OS This was rumored several months ago and is not coming out until next year Announced at Apple Keynote 2018 Why isn’t Marzipan ready now? Been working on it for a while What makes it an iOS app? Link with UIKit framework What are the roles of the different frameworks? UIKitCore What’s up with the Tea? Is Apple developing a reactive UI layer? UIKit vs AppKit Dummies guide to running your own iOS app on Mac Marzipanify Is there a simulator network to run iOS apps on the Mac? What iOS apps would you like to see on the Mac? What iOS elements are supported? What is ProKit? And much, much more! Links: Marzipanify AppKit UIKit Sponsors: FreshBooks Picks: Jaim Sturgill Simpson Erica Rainbow Cake Andrew Princess Cake Pi PDP8 Gui Brigadeiro
June 14, 2018
Panel: Jaim Zuber Erica Sadun Gui Rambo 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: Leo intro BrightDigit MicroConf What happens at MicroConf? Startups for the Rest of Us Podcast Listening to your customers for what they need What are you working on? The technologies that people are interested in now What is an info product? Getting into a regular habit of writing Do you have tips for running a meet up? The “ideal” meetup Meetups that push you forward in your developing career Creating content marketing Leo’s Exercise App What kinds of coaching would benefit from Apple technology? New Apple Watch functionality Getting info from your devices without looking at a screen Augmented Reality without images We love stats! And much, much more! Links: MicroConf BrightDigit Startups for the Rest of Us Podcast @leogdion Sponsors: FreshBooks Loot Crate Picks: Jaim Content Marketing Example - Prima Coffee Baratza Encore Coffee Grinder Erica Fitbit Aria Gui Siri Shortcuts Leo The Qualities of Great Design
June 7, 2018
Panel: Andrew Madsen Erica Sadun Jaim Zuber 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: Books Paul has written How did you get into writing? How do you switch from Php to Swift? What took you from Objective-C to Swift? Is Swift’s rapid pace of change a good thing? How do you teach technology? Who inspires you as a writer? Rory Cellan-Jones How can technical writers improve their writing? What’s your process for getting feedback?  Tell us about your videos How do you make your life more Mac development and less 1 Minute Swift? And much much more! Links: Picks: Paul OpenTerm louisdh/openterm: Pull Request 142 Best Of Star Trek Voyageur Glitch Mob - See Without Eyes Erica Gui’s WWDC App Andrew Andrew’s UPS system
May 31, 2018
Panel: Gui Rambo Andrew Madsen Erica Sadun Jaim Zuber 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: What was being surveyed? - Utility Libraries and general purpose How did you search for Utility Libraries? What is the purpose of the utility libraries? Duplicate extensions What are the most popular extensions that are recreated? String and Trim What is trim()? Why is targeting utility libraries problematic? What is the goal? Did you find wrong or dangerous implementations? Why is their discussion/drama around gathering these extensions? Would these be good topics to file Radars? Brisk - What is it like entering the Swift Evolution Process? Can a community-driven proposal gain traction? Did you look into custom types like Result? And much much more! Links: @ndrewmcknight Chris Lattner Ted Kremenek Picks: Gui Daily WTF   Erica Live Lava Feeds Andrew Antibiotics Tic-80 Tiny Computer Jaim Black Mirror Andrew McKnight Public Extension mailing list
May 24, 2018
Panel: Gui Rambo Erica Sadun 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: Paranoid back up Not everything can get synced up to GitHub Email, personal materials, etc. Horror stories Personal catastrophe Losing a business Where does your data live? Personal and financial cost What are not backups -  Dropbox, cloud, etc DropBox is only one component of a backup Cloud storage components Having a mix of cloud, and localized backs, and introducing redundancy Natural disasters and thief Offsite Github backup Git Repo Privacy, private repo, etc. Bit Bucket -  similar to GitHub Source Forge Amazon web service AWS Glacier AWS S3 ARQ Back Blaze Back Blaze B2 Time Machine alone is not efficient Bootable backups Carbon Copy Cloner Scheduler for backups Time Machine fail And much much more! Links: Amazon web service AWS S3 ARQ Back Blaze Back Blaze B2 Picks: Gui CloudFlare Workers Erica NOTI
May 17, 2018
Panel: Gui Rambo Andrew Madsen 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: What is Realm? What are differences from other data options? Is Realm a SQL database? Live objects in Realm Multi-threading and Reactive What is data type returned from Realm? What is an Object Graph? Realm Cloud Marin’s Realm Book Realm World Tour And much much more! Links: @icanzilb Picks: Gui Livestream of coding a Mac app Andrew Open Emu Marin Xcode Treasures - Chris Adamson
May 10, 2018
Panel: Gui Rambo Andrew Madsen Eric Sadun 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: Book Xcode Treasures Negativity about Xcode Tools Documentation Code Warrior Hardware 32 bit issues What are the biggest frustrations with Xcode as a developer? What are the things you love about Xcode? Xcode project format Xcode not savvy with version control Apple addressing these issues Interface Builder What did you learn about Xcode when writing the book? Code Signing Sand boxing app Git control VeraCode Fonts Who needs to buy you book? Mid Level and up iOS developers need this book. Pragmatic Programmers  Beta Program When are with going to see the book? Xcode for iPad? Xcode as an IDE Core Audio talk and updates And much much more! Links: Xcode Treasures Picks: Gui OS Log API Andrew Online Swift Playground Erica Snippity Chris We are X
May 3, 2018
Panelist Jaim Zuber Andrew Madsen 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: San Jose vs. San Francisco WWDC AltConf Next Door Conf NDC Layers Conference try! Swift Speaking at conferences Logistics Night of Dim Sum Conference Tips: Avoid loud parties Podcast Recordings Swift Panel Cocktails Coffee Meeting new people over coffee Beacon Party App Picks: Jaim  Voltaire:         360 S Market St #80, San Jose, CA 9511 Social Policy:         200 S 1st St, San Jose, CA 95113 BBW Tri Tip Sandwich -  885 Delmas Ave, San Jose, CA 95125 Sports Bar Gombei in Japan Town  Cocktail Bars:  - 43 W San Salvador St - Smaller basement vibe  - 72 S 1st St San Jose, CA 95113 Large Bar Andrew Computer History Museum Apple Park
April 26, 2018
Panel: Erica Sadun Andrew Madsen 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: What is GraphQL, why are you using it. How does GraphQL differ from REST? Where does this live? The server component of GraphQL What do you use to use GraphQL? GraphQL requests under the hood Where is the state of the technology? Apogee Subscriptions Security How to get started? GraphiQL - Query validation at compile time And much, much more! LINKS: Twitter handle - @derrh Picks: Erica Salt Lake City Andrew Nintendo Switch Derrick Microbiology
April 19, 2018
Panel: Erica Sadun Andrew Madsen Jaim Zuber 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: What is a bootcamp - 3 month intensive training Costs of attending a bootcamp Investment Who goes to bootcamp? iOS, Fullstack, etc. What kind of boot camps are out there? What do you learn at bootcamps, platforms, etc Growing industry Geting a sense of the hiring? Competitive fields Job markets Locations of bootcamps How do you find out about the job market in (Utah) Going to Bootcamp with families at home Recruiters SIRR- reports of numbers -  students getting jobs Working with team and real world activities Git Repos, Scrum, Agile, Who succeeds at a bootcamp? Apple educational event Everyone can code Graduating from bootcamp and looking for a job Job offers  at Dev Mountain Labs Apprenticeship And much, much more! LINKS: Picks: Erica Bike paths Andrew Speed Test app Okla with cat easter egg Eric Ipad with Smart Pen Paul Bike paths plus 1 Family
March 29, 2018
Panel: Andrew Madsen Jaim Zuber Erica Sadun Gui Rambo 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: Gregorio intro iMazing Who is the average user of the app? 3 types of users What motivated you to create the app that does so much for so many types of people? Go beyond iTunes Where to start? C++ toolkit Apple reasons for trouble reaching data Need for control Why not split up functionality into 3 apps? Do iOS updates break iMazing? Does iMazing handle changes in APFS? What is Data Transparency? How did Facebook get my What’s App info? Should I delete Facebook? Delete Facebook article How can we get iMazing? And much, much more! Links: iMazing Delete Facebook article @RealGregzo DigiDNA Friendly 30% off for developers: PHREAKS-GET-IMAZING Picks: Jaim pprof - Ruby Gem to list, filter, search and print Provisioning Profiles files Erica Teletubbies Andrew Outline Edit - Use OutlineEdit to sketch ideas on your Mac Gregorio Notion
March 15, 2018
Panel: Andrew Madsen Jaim Zuber Erica Sadun Gui Rambo 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: Joe Fabisevich intro Public Extension twitter GetRevue What is an example of a snippet? How did you start the newsletter? Public Extension archives are at Does the playground work on iPad? Who follows the twitter account? Is this for learners or production code? Are these snippets performant? Did you have any goals for the newsletter in particular? What have you learned? 80-90% of people actually open the newsletter Find something that is focused for your newsletter content Carbon Is it time for a new Mac & iOS design refresh? Are touch screens for Mac’s coming? What technologies are you excited about? And much, much more! Links: @PublicExtension @Mergesort GetRevue Public Extension Archives Carbon   Picks: Erica: Leet Code Gui: MacOS and iOS Internals, Volume I by Jonathan Levin Andrew: Tea Code Oregon Trail Jaim: iOS Ref @EugeneBelinski Joe: Service Pocket
March 7, 2018
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: Intro about Fernando C and C++ developer at first Core Data Is core data still relevant? What are alternatives to Core Data? Realm, FMDB Encourages people to stay with Apple’s framework of personal What is the cutoff point at which you move into Core Data? The Core Data curve What happens to Core Data at scale? Why not just use SQL? Swift debugging problems Would Swift change your opinion of CoreData? Performance problems with Realm FMDB FCModel Springboard What about the Cloud? And much, much more! Links: FMDB FCModel @FCBunn Picks: Gui Craig Hockenberry article Erica Jessica Jones Season 2
March 1, 2018
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: About the Project How does it work? Bell 202 Frequency Shift Keying How does it work with iPhones without new headphone jacks? What libraries are available? JM FSK-25 Modem Andrew wrote his own library as well How do you get around transmission issues? Erroring checking What type of device is on the other side? How do you structure your data? What other apps can use this? How is the audio with Bluetooth? Tech support Getting into the DSP weeds Zero cross detector to determine frequency Channel Coding How can I learn about the Core Audio APIs? Audio Queue Services And much, much more! Picks: Gui System-Bus-Radio Andrew 34th Anniversary of the Original Mac Altair 8800 Playing Music Over Am Radio Mini vMac Soft Modem Arduino Library Jaim Trade Wars
February 22, 2018
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: Kite Compositor How did you come up with the idea to create the app? Adobe After Effects Why use Kite Compositor? What makes Kite Compositor better? Graphics underpinnings How can designers or developers use this app? Zeppelin and JavaScript Is creating this app a full-time job? Did you do validation? He created an app that he would want to use Computer science in college Launching the app How did you do source code generation? Swift or Objective-c? Does Xcode handle projects with both languages better than it did? What learning materials are there? And much, much more! Links: Linode Microsoft App Center @JRho Kite Compositor Picks: Jaim The ‘King of Kong’ could be stripped of his high score Blog post on the “King of King” fraud Andrew Chasing Ghosts - Beyond the Arcade movie OpenEmu
February 15, 2018
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: Where did the idea for ChibiStudio come from? iMessage apps How to improve the iMessage app success Discoverability Free app with in-app purchases. Why? Different theme packs, especially during holidays Balance between free content and paid options Corporate outreach Developing your own brand Small and specialized audience 2 pathways to monetary success Using ads in apps King Games Ethical apps Lessons he’s learned from developing And much, much more! Links: Linode ChibiStudio Microsoft App Center   Picks: Gui HomePod Erica Farscape
February 11, 2018
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:  What's Flawless Dealing with multiple screen sizes The story of Flawless Working on a small team Designing and marketing as a developer Marketing ProductHunt The future of Flawless app and much more! LINKS: Picks: Gui Tech Podcasts Lists Erica Donuts Lisa Marketing for Engineers
January 28, 2018
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:  Apples Second major campus - in Denver? iMac Pro Consumer market Other desktop computing possibilities Mac mini talk Puck Mac? Commit Cloud Developer Market Control Center issues Air Pods Swift Playgrounds on iPad Enable 3rd party developers to add to control center Evolution of iPads as pro computers Where do we put our developers? Touchscreens iPhone X MacBook keyboards Touch Bar WWDC 2018 and much more! Picks: Gui 8 Bit Guy Videos Erica Libere Foldable Bike
January 18, 2018
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: What is RX Swift? Web applications Asynchronous code Advantages of Swift Data is always in sync What are typical events? Coming from traditional Obj. C development, what is different? Reactive Cocoa vs Swift Concepts, languages Standardized terms How does RxSwift merge with Swift? Schedulers? GCD? How do you integrate RxSwift with Table View? Integrating RxSwift with UIKit Drawing patterns Do you think Apple will adopt some of this uniform design? Marzipan with RxSwift Coco for the Mac What are the first step to learning RxSwift? What do you want to accomplish? RxSwift Slack Group and much more! LINKS: Junior Bontognali Marin Todorov Scott Garner Florent Pillet RxSwift Reactive Programming with Swift RxSwift Slack Group Picks: Gui External Build Systems in Xcode Erica RxSwift book The Vector Podcast Andrew Classic Computing Podcast Swift Coding Challenges Book Junior AppBuilders Conference Marin Snippette Sourcery  Florent Vert.x Reactive JVM Server Framework Scott Paintcode RxFlow  Realm
January 11, 2018
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: Gui describes CloudKit Why does it mean to use the Cloud Storage Storage facility - in Carolinas. Data from the apps to the Cloud Schema-less Issues with login and see other peoples data Creating a data object Framework - Cloud-kit Thinking of the cloud as an extra disc drive. Error oriented programming Real world use, and conflicts with document revisions Nightmares syncing issues Change tokens Server Record Change Options  for Local and Server version Text merging Register subscriptions Costs and development Cloudkit is essentially free and has 3 different database Private Web clients  or android Local caching mechanism Can I use CloudKit with a web or Android app? and much more! LINKS: CloudKit Rest API   Picks: Gui Eric Ventusky Weather App  Jaim English Premier League
December 30, 2017
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: Zewo ( IBM Grand Central Dispatch Syncro-programming Promises Async/Await Is Swift following or leading? Defer statements Current state of concurrency in Swift Swift forums  What's going on in concurrency in Swift right now Incremental programming Chris Eidhof's Incremental Programming Seven Concurrency Models in Seven Weeks CFHipsterRef Mike Ash and much more! LINKS:   Picks: Erica Swift Forums Paulo Incremental Swift Andrew: Iconic Book The Emerald Deep
December 23, 2017
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: Design Code Platform Books and resources How big is the team? Designers and Developers working together, challenges and wins Not Prototype Code, Real Code Auto layout in Design tools What can developers learn from designers? Margins Design guidelines Negative Spacing iOS 11 design changes Developing for iOS 11 How can I decide between regular titles and large titles? Transitioning from web to mobile design Tab Bars Design Language and Guide Lines and much more! LINKS: Meng To Marcos Grisell Picks: Gui Meng HQ Live Trivia Game  
December 14, 2017
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: Open Source Language Renaissance Higher Types Maps & Arrays Functional & Reactive Programming Swift Swift as a gateway to functional programming Future features in Swift? What can you do with higher level types? How has application development evolved Declarative State is back! Programming by contract Testing Testing timecode Unit Testing Examples of testing code from Kickstarter app Point Free Picks: Jaim: Realm  Andrew: Cities Skylines Advent of Code Erica Anti-pick High Sierra missing Network Diagnostics App Stephen Reducers Purescript Test Driven Reactive Programming  
December 7, 2017
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: Jaim’s talks about what brings this topic up XCode 9 and others issues iOS development and Code Signing iOS security model Cutting down build time Building with Jenkins Utilities Managing the Build Server Sharing Certificates Fast Lanes match. This will save a half day of debugging Setting up a build server - Resources? Inside Code Signing Mac OS Code Signing In Depth IPA zip file and unzipping Call Jaim if you don’t want resolve these issues! Works for Native Apps… It is possible to fix this issue Links: Inside Code Signing  Mac OS Code Signing In Depth Picks: Jaim: Mystery Phantom App Updates by Jeff Johnson This Week In Machine Learning & AI Podcast Meghan Kane talking Machine Learning at AltConf 2017 Andrew: Blog on Machine Learning  Pycharm    
December 1, 2017
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: History of involvement with Swift 8:20 How is Swift as an open source project? 10:50 What is Swift Evolution? 12:43 Swift releases cycles 14:40 How do developers deal with Swift changes 15:40 Did Apple ship Swift too early? 17:50 Objective-C is evolving too 26:00 Swift interoperation with C libraries like Core Foundation 28:59 Upcoming Swift C Integration in Swift 5 30:00 Other C API’s 31:30 Customization of Types in Swift 36:22 Dave and Erica’s Swift Non-Standard Libraries Proposal 38:00 Dave’s idea for improving Date API’s 43:48 What are the goals for a Non-Standard Libraries? 47:50 How to get involved with Swift Evolution 54:00 LINKS: Blog Picks: Jaim: Brian Hogan  Erica: Brandon Sanderson - Trilogy  Dave: Andy Weir  Andrew: CLANG Format  
November 23, 2017
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: Imagine Engine Revazendo beta signup ( Swift By Sundell Podcast Picks: John Mario Odyssey Gui’s AnimojiStudio    
November 9, 2017
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: App Launch Map Intro Screenshots How has the App Store changed over the past few years? New features on the app store Agile Bits How did you develop App Launch Map? What can developers do to improve their app store presence? What are differences between launching large apps and smaller devs? How is the Mac App Store different than the iOS App Store? How you handle clients Contracting Being a woman in tech App Camp For Girls, IndieGoGo Fundraising to add new cities Links: Picks: Gui: Apple TV 4K and HDR Devices Jaim Hacking With Swift Awards Andrew Stranger Things on Netflix +2 Aleen The Good Place
October 7, 2017
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: API difference Incremental updates and minor adaption for the new hardware system for Touch Bar and Force Touch Trackpad. How as Omni adopted the touch bar features Minimal upkeep for the Touch Bar Has the Touch Bar been a successful feature, and for Omni Focus? Integration of app to use the Touch Bar. Mixed feelings about the Touch Bar, useful for sliders. etc. Deciding what features are active with the Touch Bar, or switching to iOS and desktop UIs. Specific design language for iOS or OSX? Longpress -  How do you decide what gets the Force Touch or Long press? How do you assist the visual disable in the application design? New file system -  How is it affecting the Omni application? Decisions on which features are most important for the app Omni Focus APFS impact on application Omini Disk Sweeper  Apple slowing down and building support rather than new features Maybe Apple is laying down the foundation for new features that we don’t know about Has Omni gone into whole Swift? Language stability -  are you comfortable bringing in the new language The great renaming  Links: Omni Group @timekl @OmniGroup Carbon Copy Cloner Picks: Gui: How To Train Your Own Model for CoreML Jaim Erica Honda Element - Discontinued Andrew New Star Trek Tim Carbon Copy Cloner
September 28, 2017
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: How do you go about finding out about new features by looking at a piece of firmware? How to understand the face recognition firmware Is the new identification system going to be the alternative to touch ID or is it going to supplement touch ID? Will this tie into the payment system? Giving authentication to 3rd parties for payments How does this biometric technology handle identical twins, hats, glasses, weight loss, etc Framework lists from the old and new USB file Code names vs. Marketing names New apps or features in applications Hopper Harder leaks vs. Softer leaks And much more on the framework 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: The Founder - (2016) - Netflix Jaim Erica Cars that work
September 28, 2017
Show notes are coming!
September 14, 2017
Tweet this Episode Show Notes in Progress
September 7, 2017
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 Ancillary Justice Jaim Swift by Sundell on Command Line Interfaces Greg Businessy books on Audible The 5 Dysfunctions of a Team Work Rules
August 17, 2017
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 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 Book: Rework Erica Sadun Manga: Monkey King Blog: Simulating a Second Finger During Drag Gui Rambo Chibi Studio iOS Drag and Drop (Session 203)
August 10, 2017
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
August 3, 2017
iPS 209: Vapor with Bob Snyder On today's episode of iPhreaks, Andrew Madsen and Jaim Zuber talk about Vapor with 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 Podcast: Turing-Incomplete Andrew Madsen WWDC Mac app Jaim Zuber Blog post: Overview of Swift Serve-side Frameworks
July 27, 2017
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
July 20, 2017
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 Guardians of the Galaxy 2 Gee Rambo Stranger Things Jaim Zuber Turnpike Troubadours
July 13, 2017
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 Coffeehouse Blunders podcast Andrew Madson Merge Conflict podcast
July 6, 2017
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
May 25, 2017
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
May 18, 2017
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
May 11, 2017
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!
May 4, 2017
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!
April 27, 2017
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!
April 20, 2017
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!
April 13, 2017
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!
April 4, 2017
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!
March 30, 2017
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 Stay tuned to learn more about what is new with iOS and what Martin currently enjoys doing!
March 23, 2017
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!
March 16, 2017
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!
March 9, 2017
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.
March 2, 2017
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. 
February 23, 2017
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!
February 16, 2017
On episode 190 of iPhreaks, Andrew and Jaim discuss Notifications 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.
February 8, 2017
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.
February 2, 2017
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.
January 26, 2017
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.
January 19, 2017
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!
December 29, 2016
Introduction Ariel Elkin Why I Am Not a React Native Developer 1:20: React Native Functional reactive programming Reactive architecture Inconsistent state 7:15: Context of iOS app 9:50: Developing in React Native What went well What didn’t go well 18:45: JavaScript patent Example with Facebook Example with Airbnb Patent trolling 29:30: More concerns with React Native Ubuntu Parse Picks: How to Disagree by Paul Graham (Ariel) Bullet list of what real programmers are (Ariel) Chainsawsuit comic (Ariel)
December 22, 2016
Introduction Branch Branch blog 1:05: Deep linking Storyboarding URI schemes Fragmentation of standards 12:15: Examples of deep linking Sharing App adoption 15:15: Direct to App Store Referring user information Fingerprinting Burrito ad 24:00: App delegate Link routing Preventing malicious attacks 27:30: Success stories 31:00: App without website Picks: Amazon Echo (Rod) JMP (Alex) Bose headphones (Alex) Fellow Coffee (Alex)
Loading earlier episodes...
      0:00:00 / 0:00:00