The iOS Development Podcast
Similar Podcasts
Elixir Mix
Elixir Mix is a weekly show focused on the Elixir programming community. Our panel discusses topics around functional programming, the Elixir ecosystem, and building real world apps with Elixir based tools and frameworks.
Developer Tea
Developer Tea exists to help driven developers connect to their ultimate purpose and excel at their work so that they can positively impact the people they influence.
With over 13 million downloads to date, Developer Tea is a short podcast hosted by Jonathan Cutrell (@jcutrell), co-founder of Spec and Director of Engineering at PBS. We hope you'll take the topics from this podcast and continue the conversation, either online or in person with your peers. Twitter: @developertea :: Email: developertea@gmail.com
Formación en Dermofarmacia
Bienvenido al canal formativo, a través de podcast, de la vocalía nacional de Dermofarmacia del Consejo General de Colegios Farmacéuticos.
Una iniciativa en la que se abordarán en profundidad los principales temas de interés y actuación del profesional farmacéutico en el campo de la dermofarmacia.
Únete al programa formativo en Dermofarmacia y déjanos en comentarios tus propuestas de temas.
Episode 223: 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
Episode 222: iPS 221: History and Evolution of Swift with Dave DeLong
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
Episode 221: iPS 220: John Sundell
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
Episode 220: iPS 219: Phreaking it up! with Daniel Jalkut
Episode 219: iPS 218: App Launch Map with Aleen Simms
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
Episode 218: iPS217: High Sierra app updates with Tim Ekl
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
Episode 217: iPS 216: HomePod Leaks and Firmware Spelunking
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
Episode 216: iPS 215: Beacon Party with Soroush Khanlou Show
Show notes are coming!
Episode 215: iPS 214: What Making Records Taught Me About Writing Code with James Majors
Tweet this Episode Show Notes in Progress
Episode 214: iPS 213: Products Instead of Features with Greg Raiz
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
Episode 213: iPS 211: Making Your App China-Friendly
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)
Episode 212: iPS 210: Build Special 3 - Visual Studio Mobile Center Deeper Dive with Ela Malani & Piyush Joshi
iPS 210: Build Special 3 - Visual Studio Mobile Center Deeper Dive with Ela Malani & Piyush Joshi This is a special episode of iPhreaks from Microsoft Build with panelists Jaim Uber and Andrew Madsen. There are joined by two special guests, Piyush Joshi and Ela Malani, to discuss Visual Studio Mobile Center. Tune in to learn more about this product! [00:00:20] Introduction to Piyush Piyush is a program manager on the Visual Studio Mobile Center team. He has been at Microsoft for nine years. He’s recently been working on the Mobile Setup Services that are provided by Microsoft. [00:00:44] Introduction to Ela Ela is a program manager in the Mobile Center and has been working for Microsoft for three years. She owns the SDKs and CLIs for Visual Center. [00:01:34] What SDKs does Visual Center have? Mobile Center supports a variety of platforms (iOS, React Native, etc). A great feature is that the SDKs are all Open Source on GitHub. Users can just use the SDKs they want, which provides the ability to keep app sizes small. [00:02:44] Do you accept contributions? Definitely. They are always actively looking for the developer community to contribute to the Open Source SDKs. [00:03:00] If I want to check out the project how do I find it? There are four projects on GitHub. They are Mobile Center SDK’s iOS, Mobile Center SDK Android, one for dotnet and one for React Native. [00:03:25] What installation methods do you support? Developers for iOS can download two ways. They can download manually or via CocoaPods to get started. There is no Carthage support yet, but it is coming. [00:04:30] When you download this, are you getting a library? Users are downloading a library. The biggest reason to have it on GitHub is to gain developers’ trust. Developers want to know what you are shipping because of privacy reasons - is it secure, is it safe? SDK’s are collecting user data and developers need to be confident in the privacy abilities. Open Source SDK’s makes the product more attractive. The app developer gets full control of what info gets sent to the backend. Data does not get transmitted if users do not want it to be. [00:07:30] What does your Command Line Interface (CLI) do? Why do you provide one and how can your users utilize it? Mobile Center has an open CLI in order for users to have a lot of control. Everything can be done via CLI – using the test services, distributing to users, getting crash reports, uploading files, etc. Developers don’t have to go through the portal. Just open the CLI and perform the same actions. [00:08:50] Do you know what your users are using the CLI’s for? Test services is one service that is being heavily used. Mobile Center can provide one line of command that shows what need to trigger in the CLI to set up test services on every device. [00:10:00] Can you use your own CLI service with Mobile Center? Yes. Mobile Center provides all setup services but users are free to choose which services they want to take utilize. They don’t have to download a huge file with everything included; they can just download the one thing they want. Each of the services can be used individually or integration with various test distribution. It is up to developers how they want to customize their app. [00:11:46] How do I set up test services? Create an account and app within Build. Then access the test service in this case. Use any of the frameworks and start a new test run. Then, upload your package and test scripts. After that, send the tests to the backend, which will run them for you. You can select which devices you wish to run tests on and then can see the results. [00:15:40] Fast Lane Support There is no fast lane support in Build right now but they are investigating how that can happen soon. [00:16:35] Does Microsoft have any Ruby applications? Not right now but it should not be a problem. [00:17:10] What platforms are supported with the CLI? There are two platforms that are supported right now, which are Windows and Mac. [00:18:00] What led you to support React Native? A full focus for Mobile Center is React Native. There are not a lot of products out that currently support React Native. A goal is to provide first class support for React Native. Build service also provides support with React Native Apps. They are thinking of how to support CodePush as well. [00:20:50] HockeyApp Mobile Center SDKs are developed on top of the HockeyApp SDKs. For people that use HockeyApp, Ela and Piyush recommends trying Mobile Center. The difference is that they are attempting to make Mobile Center the “one stop shop for all developer needs.” Picks Ela: Settlers of Catan Piyush: Born to Run by Christopher McDougall Links Visual Studio Mobile Center https://github.com/Microsoft/mobile-center-sdk-dotnet https://github.com/Microsoft/mobile-center-sdk-ios https://github.com/Microsoft/mobile-center-sdk-android https://github.com/Microsoft/mobile-center-sdk-react-native
Episode 211: 209 iPS Vapor with Bob Snyder
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
Episode 210: iPS 208: Build Special 2: Visual Studio Mobile Center with Karl Piteira
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
Episode 209: iPS 207 White Label Apps
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