Empower Apps

Empower Apps

By Leo Dion, Principal CEO and Swift Developer at BrightDigitBusinessTechnology
Download on the App Store

Empower Apps episodes

  • Subcontracting with Joe Cieplinski

    Guest

    •  Joe Cieplinski 
      • jcieplinski (@jcieplinski) - Twitter
      • Micro.blog - @joec
      • RECaf - Effortless Caffeine Tracking
      • Release Notes | The Business of Online Businesses

    Previous Episodes

    • Cross Platform Comparison with Rob Kerr

    Sponsors

    360|iDev - August 25 - 28th - Denver, CO

    • The Leading indie iOS/Mac (and watchOS, and tvOS) Developer conference
    • It's all about Community and Code!
    • Four days of hands-on training, amazing sessions, and the great community. All Swift.

    Use the promo code FriendsInHighPlaces to get 20% off registration.

    BrightDigit

    • Specialize in helping businesses build apps for iPhone, iPad, Mac and Apple Watch
    • 10 years of experience developing for a variety of Apple platform
    • Helping dev shops which lack experience with Apple platforms and Swift

    Contact me if you need help today.

    Thoughts on WWDC 

    • WWDC on a Budget
    • AltConf

    Business + Developer Conferences

    • Peers Conference
    • Release Notes 2019

    Why Should You Be A Subcontractor?

    • An Agency needs flexibility and an extra developer for a project
    • An Agency needs a special expertise (i.e. HealthKit, WatchKit, etc…)
    • Fill a need for a particular platform and expertise (i.e. iOS) on team with other platform developers

    Things to Consider for iOS Developers

    • Have a portfolio and resume - help the agency sell you to other companies
    • Be a T-shaped developer - know the how to build an iOS app but also have a special expertise in an area
    • Consider being a consultant - help build iOS development teams for companies while also making more money
    • Know developers of other platforms - such as Android - if you can work with them then this provides even more value to the agency

    Challenges of Being a Subcontractor

    • Giving up Flexibility - you can be dropped at anytime because you only filling a role till a full-time employee is hired
    • Communication and Management - Understood Your Role Within the Structure
    • Don't Talk Money with Client Directly - Discussions on Money and Time should go though the agency always not directly with the client
    • Don’t Sell Yourself as an Individual - remember you represent the agency
    • Listen to the Team - Follow the agency and client’s protocols and guidelines such as their coding style, etc…

    Speaking at 360|iDev

    • Joe’s Talk - When a Simple Algorithm will Do
    • Leo’s Talk - The Multi-Threaded Asynchronous Parallel World of Swift

    Social Media

    Twitter - @brightdigit 
    Facebook - BrightDigit 

    LinkedIn - BrightDigit 

    Instagram - @brightdigit 

    Thanks to our monthly supporters
    • work design
    • Steven Lipton
    • ★ Support this podcast on Patreon ★
      42 min
    • Cross Platform Comparison with Rob Kerr

      Guest

      • Rob Kerr - @rekerrsive

      Why should companies go with a cross-platform solution?

      • Consistent User Experience (whether that's a good idea or not)
      • Synchronicity in Code Base
      • Budget - Use existing team expertise 

      What are the differences between cross-platform solutions?

      • Web Based - Cordova, Ionic, PhoneGap
      • Bridging Solution - Flutter, React Native, NativeScript
      • Language Based - Xamarin - Use C# to Call Native API

      What are the challenges with cross-platform solution?

      • Dependent on Vendor Support
        • Dev teams need to keep Cross-Platform Tooling up to date
      • Using a Specific API (Metal, HealthKit, etc…) 
        • May not be supported by Cross-Platform Tool
      • There may be instances such as UI - you want differences between devices

      Social Media

      Twitter - @brightdigit
      Facebook - BrightDigit
      LinkedIn - BrightDigit
      Instagram - @brightdigit

      Transcript

      [00:00:00] Leo Dion (Host): Today with us. We have Rob Kerr. You want to go ahead and introduce yourself. 

      [00:00:05] Rob Kerr (Guest): My name is Rob Kerr. I'm a consultant working primarily in mobile platforms a lot of native development but more and more it's cross-platform with Xamarin, Flutter, and some other tools and I work with primarily business customers who are looking to deliver applications to both IOS and Android with the most efficient development process that they can experience.

      [00:00:29] Leo Dion (Host): Awesome, really glad to have you on Rob. I've known you for three or four years now. It seems like. 

      [00:00:35] Rob Kerr (Guest): Something like that. 

      [00:00:37] Leo Dion (Host): Yeah, and we've met either at meetups or touch base every so often. So it sounds like recently you've been doing a lot of cross-platform development. And like I said, I have a little bit of experience with that of dabbled a little bit in Cordova as well.

      [00:00:54] My bread-and-butter, my expertise is obviously Swift [that is] native Swift development. That's what I like to do. I think it has a lot of advantages but there could be situations like business reasons valid business reasons to go cross-platform, right? 

      [00:01:10] Rob Kerr (Guest): Yeah, I think so. And I think you and I have similar backgrounds in solutions as far as Apple. I've done a ton of native development in Swift and iOS and some on Android as well. Probably the last year or two a lot of my work has been cross platform and it's kind of driven by that business need or want to you know, hit both platforms efficiently. And currently in the IOS app store has you know about 1.8 million apps and the Play Store has about 2.1 million but the stats tell us that I think AppFigures had a study that only 450 thousand apps are truly cross platform where the same application is deployed in both platforms, which is you know, it's really small numbers less than 10 percent.

      [00:01:54] And so when will you find is you know, Everyone would kind of like to be on both platforms at the same time, but not a lot of folks are or at least not not an efficient way. So in the past you mentioned Cordova and PhoneGap and probably five or six years ago that was almost the only game in town.

      [00:02:11] But now this cross-platform frameworks are you know sprouting up quite a bit and all of the mega vendors offer something like Flutter or React Native or Xamarin from Microsoft. And so it's definitely coming into its own and there's certainly those those applications like business applications, especially where you need to have both platforms, but maybe don't want to fund building the app twice once for each so yeah, I think so.

      [00:02:38] Leo Dion (Host): What are some situations where businesses should choose cross platform as opposed to a native? 

      [00:02:46] Rob Kerr (Guest): Yeah, that's a good question. And that's you know comes up a lot because the sort of the reasons not to usually drive into accessing very exotic APIs and things like that. In my mind if a business really wants to deliver on both platforms, especially if they like to do it at the same time that kind of tends toward cross-platform if you can particularly if the user experience they wanted to be the same on both platforms then using something cross-platform maybe doesn't mandate it but certainly makes it much likely that an application is going to work the same way so that when the support call comes in then you know somebody who needs to help a user doesn't have to think about you know, how does this work on Android how does this work on iOS. How's the potentially work on Windows? 

      [00:03:29] Then the obvious, you know elephant in the room is just budget. If you have to build the same application twice that costs, you know potentially twice as much typically usually other different teams that work on IOS and Android if they're done completely native.

      [00:03:44] And then you know, you really have to think about in the long term how does that go into support cost? So if the application has to have a life cycle, new features that we added bugs need to be fixed, if they're written in two different languages than two platforms than that's something to think about so. As I think about it and on the consumer market, if you are going to develop an application to compete with one of Apple's native apps or Android and it needs to be really exotic, you know, cross-platform might not be the right choice for that.

      [00:04:16] But for the vast majority of apps are content consumpution or business orientated and so on It's probably the majority of the leading cross-platform tools can deliver an app with the same user experience. So something to think about.

      [00:04:33] Leo Dion (Host): It's funny you mention user experience. I would say that can be a benefit of cross-platform but also a hindrance in a lot of ways because like recently I was doing work with the client and they were really good about making sure that the user experience was actually different on both platforms precisely because of the expectations that certain like Android users have with their UI and Apple users have with their UI - there are definitely big differences. Specificly I'm just like thinking about like hamburger menus is like we don't have hamburger menus is very much on iOS and that's that's one of the jarring things is when you use a cross-platform app.

      [00:05:18] It can be obvious and jarring when you're using an app that is built cross platform, but doesn't like take into account like the user experience differences between both platforms. 

      [00:05:33] Rob Kerr (Guest): Yeah, there's a little bit to unpack there because as I've worked with clients that you know, definitely wanted pixel-perfect identical experiences in both platforms.

      [00:05:42] Now, you might argue that you shouldn't do that right and Google and Apple and tell you shouldn't do that because you're not following their conventions and that's a very va...

      35 min
    • Test-Driven Development with Joshua Greene and Michael Katz

      Guests

      • Joshua Greene - @jrg_developer - Senior Author for raywenderlich.com
      • Michael Katz - @themikekatz - Senior Author for raywenderlich.com

      Book - iOS Test Driven Development

      Links

      • Nimble
      • Quick

      Previous Episodes

      • Episode 14: iOS App Architecutre 

      Show Notes

      The Components of Test-Driven Development

      • Keep Your Iterations Small
      • Test First 
      • Circular Progress of Testing and Developing Functionality
      • Avoid Testing other APIs (i.e. Integration Testing)
      • Use Mock Data for Outside Dependencies
      • Behavioral Driven Development vs XCTest

      How to Encourage TDD in Your Team and Company

      • Make sure Maintainability and Specs are Met
      • Prevent Regressions with New Features
      • Regular Code Reviews
      • Tests Should Be Required Before Deployment
      • Encourage a Culture of Testing
      • Slow Add Tests to Projects Missing Them

      Common Mistakes When Doing Test Driven Development

      • Following the Golden Pathand not testing edge cases and errors
      • Following Test Coverage too strictly or not enough
      • Use Multiple Test Targets
      • Write Tests First

      For Experimenting with New APIs

      • Use Spike Solutions to Experiment
      • Write Temporary Tests
      • Use Playground to Test Code

      Continuous Integration Tools

      • Jenkins
      • Travis-CI
      • CircleCI
      • Xcode Server
      • Fastlane

      WWDC and TDD

      • New Performance Tests
      • Test Plan for Xcode
      • SwiftUI, Live Previews, and Modeling

      WWDC 2019 - Testing in Xcode 

      Social Media

      Twitter - @brightdigit
      Facebook - BrightDigit

      Brand New Instagram! - @brightdigit

      Full Transcription

      Leo Dion (Host): So hey guys, how's it going? 

      [00:00:01] Michael Katz (Guest): Great. How are you?

      [00:00:02] Leo Dion (Host): Good good, just been trying to catch up with WWDC. What's your general thoughts so far. 

      [00:00:07] Michael Katz (Guest): It seems like this is about the biggest one we've had since they introduced Swift. There's just so much stuff. 

      [00:00:12] Leo Dion (Host): Yeah, that's exactly what I was thinking especially with the UI changes. So have you started investing money to buy a $1000 stand? 

      [00:00:20] Michael Katz (Guest): Yeah, I wish. Fortunately at my company, we actually do video editing. We have editing bays already have racks of Mac Pros. So I assume that those will get upgraded with the new machines at the fancy monitor so I can go downstairs and drool over them when I'm not actually. It's working on my MacBook. 

      [00:00:36] Leo Dion (Host): Yeah, I mean that's the thing about these devices. They're not for developers like there for video editing like massive 3d rendering that kind of stuff and big production companies 

      [00:00:45] Joshua Greene (Guest): Maybe if you're doing like 3D games or something as a developer. I could see it being really worthwhile but for business or Enterprise type apps it may be a little bit of an overkill which is definitely pretty awesome. But day to day maybe not so much. 

      [00:00:59] Leo Dion (Host): Yeah, exactly. So if people want to tweet at us or we're also at brightdigit on Twitter at brightdigit on Instagram and Facebook. Let us know your thoughts on WWDC and any thoughts you might have about all the new stuff that's coming  out.

      [00:01:15] Guys, so apparently you have a book coming out pretty soon. Is that correct? So go ahead and introduce yourselves to let me know a little bit about this book. 

      [00:01:24] Joshua Greene (Guest): So my name is Joshua Greene. I am a longtime author for RayWenderlich.com

      [00:01:30] I've done everything from creating tutorials to books to videos. This is a new project that we're putting together to teach test-driven development it's called iOS Test-Driven Development by Tutorials 

      [00:01:45] Michael Katz (Guest): And I'm Michael Katz and similar story. I've been with Ray Wenderlich for a number of years and also done books tutorials.

      [00:01:53] Spoke at the RW Devcon. Haven't done any screen cast yet, but maybe someday and they are passionate about test-driven development and we both came I think independently to the idea of writing a testing book and editor-in-chief put us together. And here we are most of the way through it.

      [00:02:11] Just getting ready to finally finish it up. 

      [00:02:13] Leo Dion (Host): So test-driven development, I remember once it was like almost more than half decade ago, probably almost 10 years ago, I went to a conference in Chicago and I think it was Bob Martin who gave a talk on test-driven development the idea being like first you write your test and then you write your code.

      [00:02:33] Is that kind of the gist of it or what are the components of test-driven development? What exactly does that mean? 

      [00:02:39] Joshua Greene (Guest): Yeah, definitely writing tests first is definitely a big part of it. Keeping iterations small. I think test-driven development is all about, you know, writing one small thing you write a small test to implement something that you need to get implemented.

      [00:02:54] You show the test actually doesn't pass you implement. Whatever code is required to get it the pass and then you verify it passes. And you just repeat this process over and over so that when you finally, you know, got your app out not only have you got all the features written you've got all of the tests that you're going to need alongside it but it's not like you just write all the tests in advance. It's literally a small step by a small step is kind of what makes it different and special. 

      [00:03:20] Michael Katz (Guest): It's a circle you just go over and over again at a little test and yet add some code to fix that test and you test the next piece and you add the code for that and so on so you're always in lockstep. 

      [00:03:31] Leo Dion (Host): So the problem I have had with test-driven development and iOS is some of the stuff that is pertaining to like the UI or perhaps like test-driven development, sometimes you have different screen sizes, obviously, you might have to deal with something like core data or networking. How do you overcome tho...

      48 min
    • iOS App Architecture with René Cacheaux and Josh Berlin

      Guests

      • Josh Berlin - @jab2109
      • René Cacheaux - @RCachATX

      Book - Advanced iOS App Architecture

      Links

      • Swinject
      • RxSwift
      • Advanced Unidirectional Architecture with Rene Cacheaux - Live Tutorial Session - RWDevCon 2018
      • Alcatraz RIP
      • Xcode Extensions

      Previous Episodes

      • Episode 7: Apple 2019
      • Episode 8: Cloud and Backend Services
      • Episode 12: iOS Developer Interviews with Alex Bush

      Show Notes

      Challenges with Architecture in iOS Application Development

      • Dealing with the lack of guidance from Apple
      • Slow team velocity caused By large volumes of code
      • Architecture is important when the team is large enough to benefit
       One day when the team grows more, you’re going to potentially have more problems.
      Josh Berlin
      • The need to slow down and establish an architecture in an app
      • constant communication and early meeting to discuss patterns and practices (i.e. Architecture)
      • How team dynamic affects the need for leadership

      Applying Patterns to iOS Application Architecture 

      • MVC vs Other Patterns such as RxSwift
      • How design patterns naturally develop
      • Using third party libraries
      • The importance of team DNA
      • The importance of dependency injection
      • Tooling - iOS and Swift vs Android and Kotlin
      • The problems with Storyboards and having healthy architecture

      WWDC Hopes and Dreams

      Josh Berlin - @jab2109

      • Dark Theme (iOS)

      René Cacheaux - @RCachATX

      • Marzipan
      • Swift Concurrency Primitives

      Leo Dion - @leogdion

      • Xcode Improvements
      • More Exposure for Services and Server Side Swift
      • Swift Package Manager
      • More Developer Tools

      What happened to Alcatraz and Xcode Extensions?

      Social Media

      Twitter - @brightdigit
      Facebook - BrightDigit

      Brand New Instagram! - @brightdigit


      Transcript

      Leo Dion (Host): [00:00:00] Hello, welcome to another episode of EmpowerApps Show today. We have with us René Cacheaux and Josh Berlin. Guys, thanks for coming on. 

      René Cacheaux (Guest): [00:00:08] Thanks for having us. 

      Josh Berlin (Guest): [00:00:09] Yeah.

      Leo Dion (Host): [00:00:09] So I've heard a lot of issues that companies have with architecture especially architecture with iOS apps and I know you guys have a book coming out as part of the Ray Wenderlich series - IOS app architecture. So this is something I'm really interested [in]. Maybe if you can kind of define the problems you've seen a lot of companies run into when it comes to architecting a successful mobile app, especially in iOS. 

      René Cacheaux (Guest): [00:00:40] Yeah, one of the biggest challenges with iOS development is that there's really no strong opinion from Apple. So everyone's really kind of left to roll their own patterns. The biggest issues that I've seen is just slow in-team velocity, because we read a lot more code than we write. Everytime that we go into a code base to add a new feature, fix a bug, or something - the more tightly coupled all the pieces of your app are [and] the more you have to read to kind of understand all the things that you need to understand to make a safe change without breaking something. And so, kind of architecture really helps speed up your team because if you can kind of use the right patterns and break things up into no easy to reason about chunks. It's much much easier to find where you need to make the change and have confidence that you are not going to break something. So that's what I would say kind of like the main points on that.

      Josh Berlin (Guest): [00:01:39] Yeah and another thing is like a lot of apps that are built usually start with maybe like one person or a small team and  that developer has an opinion about how to architect the app and as a team grows and the product org wants more changes [it] becomes a lot harder to make those changes if the team isn't on board with one type of architecture and everyone is going to have their own opinion. It's going to be a lot easier to make these changes. If everyone agrees on one architecture and knows where to our find everything, everything is documented because one day when the team grows more, you know, you're going to potentially have more problems - like René was saying finding things in the code base. When the app is small it's not as big of a deal but when it grows it becomes a lot more challenging, so it's good to get these architectural patterns in early on and have everyone on board.

      Leo Dion (Host): [00:02:36] Maybe talk a little bit about your background and how did you guys get into iOS development? 

      René Cacheaux (Guest): [00:02:40] So I got into it back in around 2008. I was doing a bunch of kind of web Java server face, you know internal it development and my wife had bought an iPhone and was kind of really trying to get me on board with the Apple ecosystem. Back then I was kind of Microsoft guy. You know, I was like, I'll try developing for this it would be interesting and I just got hooked honestly like. Working with like very abstract things kind of in the cloud and kind of in the background versus working on something that you can kind of feel and touch and look and show your friends kind of a really really cool thing. That's how I got into it. 

      Leo Dion (Host): [00:03:17] How about you Josh? 

      Josh Berlin (Guest): [00:03:18] Yeah. So in college, it was like maybe 10 years ago and iOS first came out. No one was really teaching this in school and I wanted a fitness tracker. So I built one for myself and ended up getting a job at a company building business products for Windows. They wanted to Android and iOS...

      36 min
    • Apple and Video with Paul J Schmidt

      UnoDeuce Multimedia and Storytelling

      • UnoDeuce Multimedia
      • Youtube
      • Instagram
      • Twitter
      • Facebook

      Previous Episodes

      • Apple 2019 - Apple and Service

      March 25th Event

      • Other Services
        • Apple Arcade
        • Apple Card
        • Apple News
        • Apple Music
      • How is Apple positioning itself compared with other Streaming Services?
        • Apple TV
        • Apple TV+
        • Amazon Prime 
        • Netflix
        • Disney+
        • Exponent Episode - Family-Friendly Disney
        • Hulu

      How to start telling stories with video now

      • Filmic Pro
      • Clips
      • iMovie
      • Recording with an iPhone
      • Editing with an iPad
      • iMac vs iMac Pro for Video
      • HD vs 4K
      • High Color Gamut
      • Final Cut Pro
      • Mac Mini

      Running IT in an Apple Run Business

      • Dropbox

      Archiving and Hard Drives 

      • Lacie
      • Western Digital
      • BackBlaze Hard Drive Stats For 2018

      Lansing Marketing Hackers

      • Lansing Marketing Hackers Meetup
      • Learning a New Skill with Alexa with Paul J Schmidt

      WWDC

      • New Mac Pro?
      • Pro App Updates
      Thanks to our monthly supporters
      • work design
      • Steven Lipton
      • ★ Support this podcast on Patreon ★
        41 min
      • iOS Developer Interviews with Alex Bush

        Alex's Links

        On Twitter @alex_v_bush
        iOS Interview Guide 

        Inside iOS Dev Podcast

        Previous Episodes

        Episode 8 - Cloud and Backend Services For Apps

        What makes interviewing iOS Developers special?

        • Apple Design Patterns
          • Model-View-Controller
          • Delegation Pattern
          • Protocol Oriented Programming
        • Special Background and Knowledge in Frameworks: UIKit, HealthKit, AVFoundation, WatchKit, etc...

        Common mistakes employers make interviewing iOS candidates

        • Not understanding their own app
          • Hiring a consultant to help estimate and understand what iOS knowledge is nessecary
        • Not understanding the phase their app and whether general iOS developers are needed as opposed to iOS developers with specialties
        • Algorithms and Optimization Interview Questions

        Interview Questions about building a UI in iOS

        • Finding out whether the applicant understands the pros and cons of various methods: Storyboards, Coding, etc...
        • Make sure they are willing to work with the team

        Common mistakes iOS developer applicants and candidates make

        • Not having broad knowledge of various solutions an app may need: Data Storage, Networking, UI...
        • Some Backend Knowledge

        Full Transcription

        Leo Dion (Host): Hey Alex

        [00:00:01] Alex Bush (Guest): Hey Leo 

        [00:00:01] Leo Dion (Host): how are you doing, sir? 

        [00:00:02] Alex Bush (Guest): Great. How are you doing? 

        [00:00:04] Leo Dion (Host): Fantastic glad to have Alex Bush on from IOS interview guide and inside iOS Dev podcast. If you are interested in iOS development, you should definitely check his podcast out. Alex, what are you up to right now? 

        [00:00:21] Alex Bush (Guest): I am sort of getting up to speed after Microconf and vacation.

        [00:00:27] Leo Dion (Host): I hear you. I'm in the same boat microconf and peers and vacation and starting a new contract. So I know where you're coming from. 

        [00:00:35] Alex Bush (Guest): Right and yeah, and I'm Contracting as well iOS so doing that getting up to speed on that  

        [00:00:42] Leo Dion (Host): Who are you working with right now? 

        [00:00:43] Alex Bush (Guest): Currently with Uber. Yeah, Silicon Valley, you know all the companies, around probably be looking for another gig soon enough. 

        [00:00:53] Leo Dion (Host): Yeah. If you are interested in architecture, definitely check Alex's podcast out like your specialty really is in helping iOS developers get jobs and specifically the interview process, correct. 

        [00:01:11] Alex Bush (Guest): Yes, that's sort of been my aim my focus lately last couple of years. Yeah, I wrote a book as you mentioned on the topic helping iOS developers get jobs right prep for interviews. 

        [00:01:26] Leo Dion (Host): Okay. So if you're like a company hiring iOS developers, what are some things that make interviewing a potential iOS Developer different from - I guess the biggest thing is web developers, right? So what makes it different from hiring your standard web developer. 

        [00:01:45] Alex Bush (Guest): That's a good question and it's sort of how the whole book thing and helping iOS devs interview started. I was at the time at a different consultancy helping them hire people for their iOS project. And as I was interviewing sort of same things will come up and I would kind of jot some notes take some notes on what to ask what to remember you get to ask and probe as I interview people and in general sort of when you interview, let's say a web developer or just a software developer right you go for a broader software topics, right?

        [00:02:30] Roughly speaking algorithms and then design patterns and architectures, right but overall for software not specific for iOS and I think that's what's different when you're interviewing and hiring iOS people. The one thing is to in the sort of web world and specifically backend world in my opinion.

        [00:02:52] You can hire a generalist and they can adapt. Quick enough I guess but in the iOS world it's very crucial to for for developers to really know very well the the frameworks that they work with and I think that's the main biggest difference when you're interviewing iOS people to sort of aim at that and assess their knowledge not just overall software development knowledge, but specifically iOS development.

        [00:03:23] Leo Dion (Host): But I guess like you like it comes to mind because it drives almost everything maybe we'll particulars about UI kit are you thinking people should really know about 

        [00:03:34] Alex Bush (Guest): it also depends right? Like if you're hiring for just I guess you don't have a heavy UI animation or performance concerns for your project or your app.

        [00:03:46] Then you don't really need a specialist. Who knows. Low-level details some of that right but sometimes for example social networking apps or apps that have social networking aspect of some kind they struggle with scrolling performance. Right? Let's say you have a some sort of a Instagram like feed with pictures infinitives feed that you can scroll and it's dynamically size, right if that's a crucial part of your app.

        [00:04:14] It's important to make the performance buttery smooth right and not every developer. Like this is what in regards of UIKit what you want to dig and assess more in that case 

        [00:04:26] Leo Dion (Host): Okay, 

        [00:04:27] Alex Bush (Guest): rather than just overall. You know, what is MVC? Right right. 

        [00:04:32] Leo Dion (Host): So maybe we should clarify the audience like UI kit is the basic framework for the user interface on iOS. So if you're going to do any. Simple menus tables with navigation UI kit is the bread and butter of that and then like Apple kind of they teach an MVC pattern or model view controller, which I think correct me if I'm wrong like every developer who does iOS development should know that in an interview correct.

        [00:05:00] Alex Bush (Guest): That is correct. Although I would say these days that's a prerequisite to Simply develop for iOS, but to be sort of hired for position. You should know more than that. At least be aware. Right?  

        [00:05:16] Leo Dion (Host): I agree. I think that's the very basics what are some other things you should know about 

        [00:05:20] Alex Bush (Guest): what comes to mind the core apple design pattern...

        38 min
      • External Developers with Jaim Zuber

        Previous Episode

        • Episode 6 - Project Estimation 

        Guest: Jaim Zuber of Sharp Five Software 

        Sharp Five Software

        Jaim Zuber Blog

        March 25 Apple Event

        • Not following Apple Events 
        • Cable Cutters
        • New Macs

        What does that mean working with external developers?

        • Types of Developers
        • Employees vs. Consultants
        • Mobile Developer vs. iOS Developer
        • Types of Consultants

        What is the best way to know you have a good developer?

        • How about “cheaper” developers?
        • What are other gotchas with developers?

        Follow Jaim at jaimzuber.com

        Thanks to our monthly supporters
        • work design
        • Steven Lipton
        • ★ Support this podcast on Patreon ★
          28 min
        • Business and IT Applications

          Previous Episodes

          • Episode 9 - iPad Apps for Businesses and Pros

          Reddit Threads

          • r/macsysadmin
          • r/osx
          • r/apple

          Database Collaboration Tool

          • Airtable 
          • FileMaker 
          • Ninox

          Managing Devices

          • JAMF - Manage Multiple Mac, iPads, and iPhones
          • More Details 

          Managing Software and Disk

          • DaisyDisk - Manage and Visualize Disk Space
          • Homebrew - Command Line Application Package Installer

          Creative Apps

          • Adobe Creative Cloud - Includes Photoshop, Illustration, Audition, Premier and more...
          • Ulysses - Distraction Free Writing App
          • FiLMiC Pro - Professional Video Recording App
          • FiLMiC Remote - Companion App for FiLMiC Pro

          Marketing Apps 

          • Buffer - Manage Social Media Queues
          • Facebook Page - Manage Your Facebook Page
          • Google Analytics - Visual Your Analytics from your Phone
          • Wordpress - Post to and Edit Your Website
          • MailChimp - Manage your Email List and Campaigns
          • Zoom - Conference Calling App

          Communication and Todo Apps

          • FullContact - Manage Multiple Different Address Books
          • Slack - Chat Application
          • Doodle - Setup Polls, especially for Meetings
          • Todoist - Todo app, pro version includes sharing of tasks

          Finances Apps

          • Quickbooks - Business Accounting
          • Genius Scan - Scan Documents From Your Phone
          • Receipt Bank - Scan Receipts and Hook up to your Quickbooks
          • Expensify - Scan Expense Receipts and Hook up to your Quickbooks
          • Wave - Business Accounting
          • Paypal - Transfer Money

          Music by Bimbotronic from Fugue


          Thanks to our monthly supporters
          • work design
          • Steven Lipton
          • ★ Support this podcast on Patreon ★
            19 min
          • iPad Apps for Businesses and Pros

            Apple March Event

            • Apple makes moves towards services (Previous Episode - Apple in 2019)
            • Apple March 2019 Special Event Preview
            • New Non-Pro iPads and iPad Minis coming out

            History of the iPad 

            • Is the iPad Still Transitioning Similar to SmartPhones and Notebook Computers did? 
            • Leo's iPad Journey
            • What makes iPad and iOS work well 
            • What’s the difference between Professional and Business Apps?

            Limitations of the iPad 

            Hardware Limitations 

            • Battery Life 
            • Connectors 
            • External Drive Support
            • Files Management

            UI Issues

            • Touch vs Keyboard and Mouse
            • FaceID and TouchID
            • Managing Apps and Split Screen
            • Responsive Web Sites

            App Store Monetization 

            • Ads
            • Flat price
            • In-App Purchases
            • Subscriptions
            • Where is Group Licensing?

            Enterprise Licenses 

            • How Enterprise Licensing Works (Apple Support Page)
            • What is Enterprise Licensing For
            • How did Facebook abuse Enterprise Licensing? (Recode Article) 


            Thanks to our monthly supporters
            • work design
            • Steven Lipton
            • ★ Support this podcast on Patreon ★
              33 min
            • Cloud and Backend Services For Apps with Erik Gillespie

              Previous Episodes

              • Episode 7 - Apple 2019
              • Episode 6 - Project Estimation Episode

              Define Whether You Do Need Cloud or Backend Services

              You Do Not Need If…

              • Privacy-Sensitive Data
              • No Cloud Backups Needed
              • Already Storing Using a Third Party APIs
              • Example App Developed by BrightDigit - CE Genius

              You Do Need If..

              • Multiple Devices In Sync 
              • Cloud Backups Nessecary
              • Example App Developed by Shiny Frog - Bear

              What To Consider When Deciding How To Store Data?

              • MVP vs Enterprise
                • What is an MVP? Most Viable Product
              • Start With the User - Project Estimation Episode
              • What Devices Does the App Support?
              • How Complex is the Data and Queries?
              • Are Outside Jobs Needed? 
                • Such as Cron Jobs, Backups, Push Notifications, etc…
              • Consider Prices - Bandwidth and Storage
              • Consider Developer Team’s Comfort Level
              • Develop Abstracting User Experience From Data Layer

              Build a Custom Web App

              Virtual Machine Options

              • Amazon EC2
              • Linode
              • Digital Ocean

              Web App Options

              • Kubernetes
              • Docker
              • Heroku

              Database Options

              • MySQL
              • MariaDB
              • PostgreSQL
              • MongoDB
              • Redis

              Programming Options

              • PHP
              • Node.js
              • C#and ASP.NET Web APIs
              • Ruby
              • Elixir

              Swift Options

              • Vapor - Review
              • Kitura
              • Perfect

              Server Software Options

              • IIS
              • Nginx
              • Apache

              Other Software Considerations

              • Cloudflare
              • New Relic
              • Supervisor

              Mobile Backend As A Service

              • Parse
              • CloudKit
              • Firebase
                • Using Multiple Services 
                • REST API vs GraphQL

              Music by Roman Bulakhov from Fugue

              Full Transcript

              [00:00:00] Erik Gillespie (Host): Hi Leo, it's me. Again. 

              [00:00:01] Leo Dion (Host): Hey, Eric. Glad to have you on to help host this episode. So today we're going to talk about back-end and cloud services for your IOS app. And I think first we should talk about when you should need a back-end or cloud service because I don't think it's needed in every absolute case when it comes to an IOS app or any mobile app.

              [00:00:25] Erik Gillespie (Host): Yeah, I'm really curious to hear what your ideas are on this. 

              [00:00:27] Leo Dion (Host): So one thing to consider is there's a lot you can get away with without even doing cloud services. The thing with an IOS app is if you're storing your data in something that is like iCloud or in a lot of cases people really don't need the cloud to store their data. They can just sort on their phone itself. I think often times when we think about building an app that's something to think about is like do you really need this stored in the cloud and if you maybe can provide a manual mechanism to backup the data into some sort of iCloud storage as a file that saves a lot of trouble and saves you a lot of time and money quite frankly when you're building your mobile app. And then that way you don't really need a cloud service or a back-end service in a lot of cases. 

              [00:01:15] Erik Gillespie (Host): What are some situations where you think it's okay to go with a back-end service or on the flip side choose to only or mostly store things directly on your users phones. 

              [00:01:27] Leo Dion (Host): I think anything that's privacy sensitive. I think you should definitely just store on the phone locally because that's a whole other headache you having to deal with if you're worried about that stuff being stored in the cloud and if it's very simple stuff if it's things that they just need on their phone and if they lose it, it's not the end of the world I think it's totally legitimate to only store that stuff on the phone. Also, if you're using any third party apis in other words. Like let's say you're using Twitter or YouTube or some other API where you're not really storing data. Data that's being stored is essentially being stored in this third party structure than it's not really necessary because you can just use that third party API as your database in many ways.

              [00:02:06] I'll just tell you one case I built an app for nurses and doctors to do continuing education for their career and all that data was just stored in core data, which is essentially a SQL lite database abstraction layer. And so all that stuff was sort of essentially in SQL and it was all sort of locally and there was just a simple option. They don't have the budget for it. They didn't have the timeline for it either. So the simple way we did it is we just have a manual backup process that you can run and it essentially creates a zip file of this data stored as a Json or JavaScript object notation file. And so if they wanted to back up they can just sort it in iCloud and if they ever wanted to restore it they can always restore it back on their iPhone. Where I think a back-end service and a cloud service is really helpful is if you're going to have it available on multiple devices .So for instance I'm a big user of Bear, which is an awesome note taking app that's available on all Apple devices and they use kind of combination iCloud and CloudKit they store their stuff in the back end and then that way if I pull up my notes on a Mac or on my iPad or my iPhone. I always have it accessible because it's all stored in the cloud. I think that's where something like a back-end service is really useful. 

              [00:03:19] Erik Gillespie (Host): Like when you need to synchronize data across multiple devices 

              ...
              35 min

            About Empower Apps

            From the publisher's feed

            An exploration of Apple business news and technology. We talk about how businesses can use new technology to empower their business and employees, from Leo Dion, founder of BrightDigit.