The iPhreaks Show

By DevChat.tv

To listen to an audio podcast, mouse over the title and click Play. Open iTunes to download and subscribe to podcasts.

Description

The iOS Development Podcast

Name

Description

Released

Price

1

iPS 222: CI & Code Signing Problems

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

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

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
(http://twitter.com/johnsundell)
Swift By Sundell Podcast
Picks:
John
Mario Odyssey
Gui’s
AnimojiStudio

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:
https://www.relay.fm/originality/
http://theincomparable.com
http://appcamp4girls.com/contribute
https://www.indiegogo.com/projects/app-camp-2020-help-us-expand-to-3-new-cities-education/
Picks:
Gui:
Apple TV 4K and HDR Devices
Jaim
Hacking With Swift Awards https://www.hackingwithswift.com/awards
Andrew
Stranger Things on Netflix +2
Aleen
The Good Place

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
timekl.com
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

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:
http://www.flixlist.co/titles/80101899
The Founder - (2016) - Netflix
Jaim
https://www.epochconverter.com/
Erica
Cars that work

In this iPhreaks episode, Erica Sadun and Jaim Zuber talk to Greg Raiz about "products instead of features."
[1:25] Greg Raiz Introduction
Greg runs RaizLabs which is a consultancy specializing in iPhone and mobile development. Ben Johnson from Raiz Labs has also been on the show.
[2:03] Products vs Features
A lot of engineering firms get into lifecycle with their products where they're thinking about the next thing. This often gets broken down into sub-features. The focus then gets placed on that feature instead of what the feature is supposed to serve. Greg gives the example of trying to format a book and when you drag a picture to the left, it jumps to the right and vice versa.
[4:00] Feature-itis
A lot of development teams are driven by sales teams. Sales teams often use feature matrices to differentiate their products instead of thinking about your product in a different way from your competitors. Apple and Steve Jobs were great at this and telling the story that differentiated the product without focusing on features.
[5:11] Developing a mission statement or differentiation story
They use a scrum methodology to develop the mission statement. Greg explains what a scrum methodology is.
Try not to overthink the product. You don't have to plan the whole thing. Instead, you try to deliver value in discreet chunks.
You could take a timer and ask "What is the purpose of this timer?" It could be time tracking, timing something, or waking someone up.
This helps with team alignment.
Greg talks about working at Microsoft on Windows XP and they determined what the core missions were for XP. Every feature that went into Windows XP had to fit into the buckets they defined.
[9:00] Is waterfall more holistic and agile more flexible?
Both methodologies deliver great software. It's more a matter of how you see and use them. Agile allows you to roll with the punches like new technologies and challenges that come up. You can then reprioritize the features.
Delivering each week also means that people can play with something right when it's complete and you can modify it the next week.
The terms can be confusing. The main point of software development is to create something that solves a real user problem
Google Design Sprint methodology focuses on gathering data and making decisions over a condensed work of time.
[13:55] What types of work do you apply this approach to?
Android, iOS, Alexa skills, medical applications, and IoT products all benefit from this way of thinking.
[15:00] BlindWays App
Perkins School for the Blind
The people who can see, Google maps will get you to the corner where you can see the bus stop.
Blind people get to the corner, but the buses drive right by them because they're not standing at the right place.
Bus drivers are trained to pick up people who are looking for them.
GPS isn't precise enough to get the blind people within a 2 foot radius of where they're supposed to be.
The app's purpose was the get them to the bus stop where they're touching the bus stop pole.
They considered all sorts of features, functionalities, and technologies, but it was all about the mission, not the feature.
Cities move slowly, so the infrastructure isn't going to change or it won't change very quickly.
Agile allowed them to test several solutions and iterate on what was working.
For example, they created several interfaces, added the voiceover accessibility features to it, and handed them off to Perkins students.
You can test voiceover with the screen off. You can also test for automation and scriptability.
[23:05] How do you turn on Accessibility and Voiceover?
Most UI elements have it built in, but if you do it wrong, some buttons will say "Button" instead of what the button does.
Apple also has sessions on Accessibility at WWDC.
[25:40] How BlindWays works for users

iPS 211: Making Your App China-Friendly
On today's episode of iPhreaks, Gui Rambo, Erica Sadun, Jaim Zuber and special guest – Guanshan Liu talk about Making Your App China-Friendly. Guanshan is on the show today to give some tips on how to prepare your apps to get into the Chinese App Store. Don’t miss this one!
[00:25] – Introduction to Guanshan
Jaim met Guanshan when he was at O-camp. Guanshan was one of the speakers and gave a talk called Make Your Apps China-Friendly. He talked about some of the challenges that people face when trying to get their apps into the Chinese market. Guanshan works at Booking.com and now lives in Shanghai.
[01:15] – Why to get into Chinese App Store
There’s a huge market in China. More Chinese people are going abroad and Chinese users have these smartphones. These smartphones have iOS, but most of them are Android. The people are spending lots of time on their phones every day.
[03:10] – Things to do to get your apps ready for China
First, you need to support Simplified Chinese because not everyone in China can read English.
[03:25] – Simplified Chinese difference
There are two ways of writing Chinese. One is Simplified Chinese, which is used in Mainland China. The other one is called Traditional Chinese. It is used in Taiwan, Hong Kong, and Macau. Most of the time, people can relate on both Simplified and Traditional Chinese.
[03:50] – Dialects
You can still communicate via Simplified Chinese even though there are many dialects in China. But that also depends on the accuracy of translation because sometimes the same word doesn’t mean the same thing. Chinese is not that easy.
[04:25] – Different versions for different parts of China
Booking uses the same app in China as the rest of the world. They use an iPhone API so they don’t need to create a separate app only for China. That really depends on your project.
[07:00] – Strategies on creating apps for many cultures or languages
You only need some knowledge about the people. The data from companies like Alibaba are different. For example, today, there is an app that when you tried to search, it will not return the result.
[09:40] – Designing for different age groups
Young people, they have different tastes. They use an app a different way. For example, they like to send comments and share what they’re watching. They like to shout-out their opinions to other people. They love these features. They are available on radio content providers in China. The idea is originally from Japan but Chinese people also allow it. As they listen to it, they can talk and share them with their friends.
[12:15] – Most users are not going to use cellular data for your app
Cellular data in China is for sale and very expensive. That is true for many developing countries like Brazil. So you have to think about that if you’re targeting any developing country.
If you want to test your app with connectivity, you can use the Network Link Conditioner. You can turn it on and it will degrade your internet connection like a fake bad connection. You can use that to get an idea of how a person in a really bad connection will use your app. It’s very important for a place like China. But Wi-Fi is fairly ubiquitous in the big cities like Shanghai. In most places, there are also free Wi-Fis.
[15:05] – First steps to be China-Ready
It would be good to find a Chinese user to test your app. Most developers in the States, they’ve always been taught to keep their apps simple. With the Alibaba app, it’s different. It has full of stuff. There are lots of icons everywhere. That’s the norm in China.
Picks
Guanshan Liu
Book: Rework
Erica Sadun
Manga: Monkey King
Blog: Simulating a Second Finger During Drag
Gui Rambo
Chibi Studio
iOS Drag and Drop (Session 203)

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 tha

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 l

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. Onc

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 pl

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'

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 custome

Underpass with Jeff Johnson
On today's episode, Jaim Zuber, Andrew Madsen, and Guilherme Rambo talk about Underpass with Jeff Johnson. Jeff is a Mac and iOS developer with more than a decade of experience as a software engineer. He recently released an app for Mac and iOS called Underpass. Tune in to learn about it!
What is Underpass?
As Jeff puts it, Underpass enables encrypted chat and file transfer between two devices. The data you transfer is encrypted from end to end.
It does not even rely on any third party. You also don't have to login to a server. The app allows you to communicate directly on any network.
Inspiration Kicks Off
When Apple made the change from iTunes to the iCloud as the preferred way of setting up iOS devices, a lot of the functionality was removed. The iTunes features were removed and if you're like Jeff and don't rely on the cloud, this could be a bit frustrating.
Jeff wanted an easier way to bring data from his Mac to his iPhone. This was his motivation to write the app but it's grown from there.
Writing Your Own Code
Jeff could not use the higher level API or S-URL connection because they deal with existing center protocols. He had to go down to a lower level core foundation API, CS Stream. Jeff had a lot of experience with this level when he was a lead developer at Airfoil so it wasn't too difficult for him.
Jeff did not write his own encryption, he used Common Crypto. It offers the same functions on Mac and iOS on one shared code base. Jeff warns against trying to write your own crypto. You'll have problems with export compliance and you'll have to go through a compliance application process.
Objective-C Versus Swift
Jeff used Objective-C versus Swift in new projects. The compilers are there, they aren't going to be removed, they are always going to work and the language is not changing. In the podcast, Jeff discusses why it's a good idea to wait a while longer before switching to Swift due to it's changing nature.
To learn why Jeff decided to build Underpass's UI entirely in code download and listen to Underpass with Jeff Johnson.
What are your thoughts about Underpass with Jeff Johnson? Leave us a rating and review if you enjoyed the show. We would love to hear from you!
Picks:
Jaim: The Trans album by Neil Young
Gui: Apple Watch, Hacking with watchOS book
Jeff: Manifold: Time by Stephen Baxter
Andrew: Neil Young Unplugged album, Techmoan on YouTube

Are you up for the 100 Day UI Challenge with Mark Moeykens? Mark has been developing since 1996, and works mostly on backend and UI. He got into iPhone development few years ago. Recently, he took up a challenge to get better at UI. Tune in to know how you too can join!
“All the information you see on the UI don't have the same value. Some of them are more important than the other pieces, and you want them to stand out more.” -Mark Moeykens

Today on iPhreaks Show, Andrew and Guillherme discuss Swift TDD with Jon Reid. Jon is the author of Quality Coding blog, and has been doing test-driven development for some time. He appeared as guest in episode 116, where he talked about TDD and testing. Tune in for more classic insights about it and about why you should not take Apple sample code literally!

On today's episode, Jaim, Erica, and Andrew discuss Japan, Sequences & Collections with Soroush Khanlou. Soroush is an iOs developer from New York City. He served as one of the speakers in try! Swift Conference in Japan. Also, he is a blogger and the co-host of a popular software engineering podcast titled Fatal Error. Tune in!

On today's episode, Jaim talks about Sourcekit and SourceKitten with JP Simard. JP has been working with Realm for about three years. He appeared as guest on episode 104. Listen to this exciting episode on Apple's SourceKit and learn how SourceKitten can make your work easier!

On today's episode, Jaim and Erika discuss When Your App Becomes a Company with Matt Ronge. Matt is the cofounder of Astropad, a drawing app that works well on an iPad. He has appeared as guest in episode 113, where he talked about launching an app. Tune in and learn how they developed Astropad and how it evolved into a company!

On today's episode, Andrew Madsen and Jaim Zuber discuss Visual Studio for Mac with Omar Khan. Omar runs the product marketing team for their developer tools at Microsoft. There has been a lot of talk about the exciting new release. A preview is now available for developers. Tune in to learn more about it!

On today's episode, Jaim, Andrew, and Gee discuss Unity for iOS with Martin Grider. Martin is the owner and lead developer of Abstract Puzzle, LLC. He is lately into iOS freelancing and has a blog at chesstris.com. Stay tuned to learn more about what is new with iOS and what Martin currently enjoys doing!

On today's episode, Jaim and Andrew discuss with Keith Ballinger. Keith is the Director of PM in Microsoft's Mobile Development Tools Division, and currently focuses on the different cloud services from mobile developers. He's also had a series of startups before he came to the company. Stay tuned to learn about his projects, which include Microsoft's Visual Studio Mobile Center!

On today's episode, Jaim and Guilherme discuss Linea with Dustin Bruzenak and Troy Gaul from Iconfactory. Dustin is a programmer and consultant at Iconfactory, while Troy is the primary developer for Linea. Both have been in the industry for many years. Tune in to their exciting talk about developing and releasing the incredibly simple drawing app!

On today's episode, Andrew and Jaim discuss Take Manhattan III with Kasey Uhlenhuth. Kasey hails from Louisville, Kentucky. She is a program manager of .NET and the visual studio team at Microsoft, specifically on Roslin. Stay tuned to learn more about what she is up to as well as her expertise in programming.

On today's episode, Andrew and Jaim discuss Core Data. Core Data is now easy to use as a result of the recent changes in Xcode 8 and iOS 10. Learn what it is and understand how you can get the most out of it.

On episode 191 of iPhreaks, Andrew and Jaim discuss Take Manhattan II with Sam Guckenheimer. Sam is the Group Product Planner of the Visual Studio Team Services of Microsoft. In the last 6 years, he has been working on Microsoft's transformation from Agile to DevOps. Tune in to their exciting talk, and learn about it!

On episode 190 of iPhreaks, Andrew and Jaim 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.

On episode 189 of iPhreaks, Andrew and Jaim talk to Xamarin Founder Nat Friedman in New York City during Microsoft Connect(). Nat talks about his new role and about creating Visual Studio Mobile Center. Tune in to iPhreaks Take Manhattan - Nat Friedman.

On episode 188 of iPhreaks, Jaim Zuber and Anastasia talk about iOS Security. Anastasia has been doing a lot of talk about it. It is a topic which is often thought that's been covered enough but not quite in reality. Stay tuned and learn how secure iOS Security really is.

On episode 187 of iPhreaks, Jaim Zuber and Andrew Madsen talked about Giving Back and helping new comers. Andrew just started on a new job as an iOs instructor in an iOs bootcamp in Salt Lake City. Learn more and be excited as you listen to Andrew's venture in the reaching out to novice developers.

On episode 186 of iPhreaks, Alondo Brewington, Jaim Zuber, and Andrew Madsen discussed about Year End Review and Predictions. They just thought it's a good idea to look back on what happened throughout 2016 in iOs and to make predictions for 2017 hoping for good things. Stay tuned to what they have to say!

Introduction
Coding Schools
DevMountain
3:40: What is bootcamp?
What the students are learning
Inspiration
Cocoa Programming
Structured environment
9:50: Alternative to bootcamp
College for four years
Degree vs. being self-taught
14:00: Interviewing
17:10: UI Kit
21:15; Marketing
For-profit school
Motivation
Hard work on the part of the student
26:45: What bootcamps mean for education overall
Filling a void
A jumpstart to career
Hard-won knowledge
35:30: Variation between bootcamps
Young industry
Potential issues
Picks:
Salt and Sanctuary (Layne)
SCSI2SD (Andrew)
Macintoshgarden.org (Andrew)
For the Love of Spock (Andrew)

2:45: Introduction
What Is Day One?
I.tv
7:00: History of Day One
App of the Week
The Verge Review of Day One
Mac App Store App of the Year
Paul Mayne, CEO and Designer
13:00: Development Flow
GitHub
17:15: Advantages and Features of Day One
Metadata
Tagging
On This Day
22:30: Syncing and Security
Dropbox
Sharing Files
Privacy/Encryption
26:00: Mac App vs. iOS
Shared Code
Data Storage
Picks
Airplane Jokes (Jaim)
RescueTime (Layne)
Skillshop.me (Andrew)
Suggest a Guest (Charles)
iPhreaks Facebook Page (Charles)
ScheduleOnce (Charles)

This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Olivier Bloch of the Microsoft Azure IoT team about the Internet of Things and the Azure IoT Suite.
Resources
azure/azure-iot-sdks
ms-iot/samples
Microsoft Azure IoT Starter Kits
Picks
Sous Vide (Olivier)

This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Nick Gerard and Salmaan Ahmed of the Windows Bridge Project aka Project Islandwood.
Picks
Tesla Model 3 (Nick and Salmaan)

This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Thomas Dohmke of HockeyApp and the evolution of Interactive C#. You can follow him on Twitter, or see what he’s done over on GitHub.
Picks
Tesla Model 3 (Thomas)

149 iPS Xamarin and The Evolution of Interactive C# with Miguel de Icaza

This episode was recorded live from The Microsoft Build Conference 2016. In this episode we chatted with Miguel de Icaza of Xamarin and the evolution of Interactive C#. You can follow him on Twitter, see what he’s done over on GitHub, or visit his blog.

This week, we’re bringing to you a behind the scenes look at the man behind the mic and the guy who puts out over 5 hours worth of free audio content per week to support the development community: Charles Max Wood.
Long-time listener, Thom Parkin, asked Chuck if he would sit down and do an interview with him to describe all the interesting things he’s been up to and his goals for the future. In this interview, Chuck gives listeners a behind-the-scenes look at all of his podcasts, the DevChat.tv platform, RailsClips, his remote conferences and his upcoming book that will focus on tips for getting hired as a developer.

137 iPS Program Like You Give a Damn with Ara T. Howard at Rails Remote Conf 2015

This episode is from Ara T. Howard’s talk at Ruby Remote Conf 2015. You can watch the full, unedited presentation, Program Like You Give a Damn, on YouTube at your convenience.
Check out All Remote Confs for next year’s remote conference lineup!
iOS Remote Conf will run from April 13-15 2016. Buy a ticket or submit a CFP!
JS Remote Conf is running from January 14th-16th 2016. Check out the speaker lineup!
Freelance Remote Conf will run from February 24th-26th. The speaker lineup is all but complete!
We, the iPhreaks Show panelists (And, Mandy!), hope you had a very happy holiday season.