Sinopse
The Fragmented Podcast is a podcast for Android Developers hosted by Donn Felker and Kaushik Gopal. Our goal is to help you become a better Android Developer. We chat about topics such as Testing, Dependency Injection, Android Patterns and Practices, useful libraries and much more. We will also be interviewing some of the top Android Developers out there. Subscribe now and join us on the journey of being an Android Developer.
Episódios
-
127: Audio playback on Android with Caren Chang
11/06/2018 Duração: 46minIn today's episode, we sit down with Caren Chang from June to talk about audio engineering for Android. More specifically, how stoves can use audio to send notifications. Show Notes Caren's "Learning Kotlin in Action" summary blog post series June Oven June Oven Video Apis Audio Latency MediaPlayer SoundPool ExoPlayer Resources Droidcon Boston Caster.IO - ExoPlayer course Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @calren24 @fragmentedcast [twitter.com] @ryanjsalva @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
126: GraphQL and Apollo with GDE Mike Nakhimovich (Part 2)
04/06/2018 Duração: 32minIn this episode, we continue with Part 2 of this GraphQL series. If you haven't listed to episode 125 already, it might make sense to first listen to that one cause we go into the basics of GraphQL. In this episode, we dive into the specifics of Apollo and how Mike went about creating a GraphQL client for Android. Let's get on with Part 2. Show Notes GraphQL GraphQL specification Apollo Apollo Android - GraphQL Client for Android Resources droidcon NYC 2017 - GraphQL on Android is here! Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @friendlymikhail @fragmentedcast [twitter.com] @donnfelker and +DonnFelker @kaushikgopal and +KaushikGopalIsMe
-
125: GraphQL and Apollo with GDE Mike Nakhimovich (Part 1)
28/05/2018 Duração: 32minIn this episode, we talk about GraphQL. Friend and GDE Mike Nakhimovich helped create the library Apollo for Android, which is the defacto official GraphQL client for Android. In this first part of two, we take a step back and first try to understand what GraphQL is, why one would use it, how Mike set out to create and contribute Apollo for Android and his journey and satisfaction with open sourcing it when he worked at the New York Times. If you've ever been interested in GraphQL, this is a good show to get you up to speed. Download directly Show notes GraphQL Sample GraphQL servers Github explorer Star Wars api GraphQLCMS visualization Shopify GraphQL Explorer Resources React, Relay and GraphQL: Under the hood of the Times website redesign The New York Times - Now on Apollo Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @friendlymikhail @fragmentedcast [twitter.com] @donnfelker and
-
124: IO 2018 first impressions with Android Dialogs & Pocket Casts teams
14/05/2018 Duração: 49minIn this episode of Fragmented, Kaushik talks to Chiuki & Huyen from Android Dialogs and Russell & Philip from Pocket Casts. Fresh after IO we huddled in a room to talk about our first impressions and what we thought were some of the highlights for us Android developers. Hope you enjoy the show! (if you want to see a behind the scenes crossover special, make sure to subscribe to Android Dialogs!) Show Notes Android Dialogs Chiuki @chiuki Huyen Tue Dao @queencodemonkey Android Dialogs on YouTube Pocket Casts Russell Ivanovic @rustyshelf Phil of PocketCasts @geekygecko Pocket Casts Wall Street Journal - Public Radio organizations buy Pocket Casts io2018 stuff Google I/O 2018: What's new in Android Google Duplex announcement at Google IO Android Jetpack (intro video) Android Jetpack: manage UI navigation with Navigation Controller (Google I/O '18) Material theming Material Theme Editor (Sketch plugin) Video 1: Guide to the new material.io website Video 2: Build great Material Design products across p
-
123: Android Micro Frustrations
07/05/2018 Duração: 01h11minWith good -most of the time- also comes the bad. In this episode, Kaushik and Donn chat about the small annoying things about being an Android developer, or more aptly - "Micro Frustrations". We usually cover the new, latest, greatest and awesome developments. But it helps to step back and also point out the things that are broken and the 1000 cuts so to speak. Sit back and enjoy this hearty rant! Shownotes F**k you Android layout complaints Kotlin Android Extensions Anko layouts (slightly different from Kotlin Android extensions) Android Studio 3.1 Stable - Build successful but can't resolve error Navigation & System bar frustrations: How do I ge the height and width of the android navigation bar If you're looking for a solution to just hide system bar (and not the navigation bar) go to our main shownotes page to see the code. Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @fragmentedcast [twitter
-
122: Learning Kotlin - typealias
23/04/2018 Duração: 12minIn this episode of learning kotlin, we look at the typealias keyword. The typealias keyword allows you to provide alternate names for existing types and and function types. Learn how, why and when you can use it in this episode Show Notes Kotlin Inline functions Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @fragmentedcast [twitter.com] @donnfelker and
-
121: Functional Programming with Kotlin Arrow team - 2
16/04/2018 Duração: 53minIn this episode of Fragmented, we wrap up another 2 part series. We dive into the details of the Arrow library with this one. Arrow is a library in Kotlin that helps bring many of the functional paradigms of programming to your daily development. We talk to the team about how it all started, the history of the library, why we even need arrow, how Arrow is structured, some of the pitfalls, and in the end some resources on getting us started with Arrow. Show Notes Arrow library Raul: Announcing Arrow for Kotlin Jorge: Caster.io course - FP in Kotlin with Arrrow Jorge: Kotlin Conf - Architectures Using Functional Programming Concepts Paco: Arrow as a companion to Kotlin Paco: Simple dependency injection in Kotlin (part 1) Mario: Book on FP Arrow Library eco system: Ank, Kollect, Helios Misc Arrow V 0.7.0 - now available Higher Kinded types KEEP - Type classes and Higher Kinded Types proposal Kotlin Arrow docs Get help on Arrrow KotlinLang slack channel #arrow Gitter: Arrow Sponsors Microsoft AppCenter – S
-
120: Functional Programming with Kotlin Arrow team - 1
09/04/2018 Duração: 28minIn this episode of Fragmented, we kick off another 2 part series. This time it's with the Kotlin Arrow team! In the first part, we talk to Jorge, Raul and Paco about Functional programming in general, some core FP concepts, do we already use functional programming today, what are pure functions, do I need to know complicated math to do FP, Immutability, Referential transparency and so much more. These are all pretty daunting words, but the Arrow team break it down and make it really simple for us to understand. Show Notes Kotlin Arrow team Paco (website) Raúλ Raja Jorge Castillo Mario Arias (in spirit) Misc Arrow KT 47 degrees Jorge's caster.io course Blogs & Presentations on FP - Arrow docs Raul's presentation on Functional programming patterns Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @fragmentedcast [twitter.com] Paco Raúλ Raja Jorge Castillo Mario Arias (in spirit) @donnfelker and +DonnFelker @kaushik
-
119: Flutter with GDE Eugenio Marletti - Part 2
02/04/2018 Duração: 52minIn part 2 of this series, To help us understand Flutter in-depth we talk to Flutter's GDE Eugenio Marletti. In Part 1 of this 2 part series, Eugenio helps us undersatnd what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroiDev today should really give Flutter a good look. We got so carried away in conversation, that we were forced to break this episode into two parts. If you missed part 1 but want go back and listen you'll find it here: 118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1) Show Notes RxDart Dart 2 Flutter Weekly Flutter on Gitter Flutter on Codelab Flutter on Github https://play.google.com/store/apps/details?id=io.flutter.gallery&hl=en Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @workingkills [twitter.com] @fragmentedcast [twitter.com] @donnfelker and
-
118: Flutter and cross platform development with GDE Eugenio Marletti - Part 1
19/03/2018 Duração: 31minIn this episode, we dive into one of our most requested topics and highly anticipated ones - Flutter. To help us understand Flutter in-depth, we talk to Flutter's GDE Eugenio Marletti. In Part 1 of this 2 part series, Eugenio helps us understand what flutter is, why it was created, how it works, some really cool features with Flutter and why an AndroiDev today should really give Flutter a good look. We got so carried away in conversation, that we were forced to break this episode into two parts. Stay tuned for Part 2. Show Notes Clue app Announcing Flutter beta 1 Embedding Flutter into an existing app (examples flutter_view & platform_view) Stepper widget Getting started on Flutter (docs) Compiled vs Interpreted languages Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @workingkills [twitter.com] @fragmentedcast [twitter.com] @donnfelker and
-
117: Multi-Module Builds in Gradle
12/03/2018 Duração: 55minIn this episode, Donn and Kaushik sit down to talk about multi-module builds with Gradle. They talk about how you can separate your build into multiple different modules and how you might go about implementing it. They discuss build performance with incremental compilation, isolation of features, code ownership and how to handle cross-cutting concerns like persistence and networking. Show Notes Instant Apps Episode Android Library Module vs Feature Module Implementation vs Compile - A Visual Guide Writing a Modular app in Android ButterKnife Woes Android Studio and Pure Java Modules Sam Edwards buildSrc and build.gradle Autocomplete Post Sam Edwards Gradle Ext Video Sam Edwards Gradle AutoComplete Phil Breault Renaming Gradle Build Files Google Arch Samples - versions.gradle Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @fragmentedcast [twitter.com] @donnfelker and
-
116: Learning Kotlin - inline, noinline, crossinline
05/03/2018 Duração: 26minIn this episode of learning kotlin, we look at 3 important keywords - inline, noinline and crossinline. The inline keyword is super common and you've probably run across this one at some point. What does it mean and when is it useful? We also look at the related but seldom used variants noinline and crossinline. Show Notes Kotlin Inline functions Code Snippets: Look at the official shownotes page for some code snippets Misc: PublishedApi annotation Matt Logan's post on inline keyword Ben Daniel Medium post - inline, noinline, crossinline — What do they mean? Sponsors Microsoft AppCenter – Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding. Contact @fragmentedcast [twitter.com] @donnfelker and
-
115: Architecture Components with Akshay Chordiya
26/02/2018 Duração: 01h04minIn this episode, we talk about the different parts of Android architecture components. We've had episodes on Room and the paging library, so in this one, we thought we'll touch a little on Lifecycle Owners & Observers, ViewModels, and LiveData. Akshay Chordiya helps break it down. Listen on! Show Notes Android Architecture Components Lifecycle Handling lifecycles with Lifecycle-Aware Components Lifecycle Owner Lifecycle Observer Best practices for lifecycle-aware components Caveat: handling onStop events ViewModels Architecture Guide: ViewModels View Model Code snippet for a ViewModelFactory: class UserVMFactory( val user: MyUser ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return when { modelClass.isAssignableFrom(UserVM::class.java) -> UserVM(user) as T else -> throw IllegalArgumentException("Unknown ViewModel class") } } } LiveData L
-
114: All About CI & CD on App Center w/ Patrick Nikoletich
19/02/2018 Duração: 01h05minIn this episode, we talk to Patrick Nikoletich from Microsofts App Center team. We explore the intricacies of the Continuous Integration server system on the App Center platform. From what App Center is, all the way down into the weeds to how to get your app building on App Center in a few short steps. We also get into the nitty gritty details around how you can customize your build with build hooks, install utilities and binaries, work with a command line interface, shell scripts, the App Center API much much more. This episode shows a new side of Microsoft that we have not seen in a long time and its a breath of fresh air. Also, view the show notes at http://fragmentedpodcast.com/episodes/114/ Show Notes VSTS: https://www.visualstudio.com/team-services/ Microsoft on GitHub: https://github.com/Microsoft The App Center CLI: https://github.com/Microsoft/appcenter-cli Azure function that automatically creates branch configurations for PR's and communicates status back to Github.: https://github.com/pniko/fun
-
113: Chatting with Pinterest's Christina Lee
12/02/2018 Duração: 44minIn this episode we catch up with a highly energetic but sick Christina Lee about the delightful details in the Pinterest app, delving with the dark side (Swift), giving live coding presentation talks and touching on some Kotlin details like covariance and contravariance. Listen on for a power-packed 40 minutes. Show Notes Google IO episode (#84) for Christina's running story Pinterest app Calligraphy by Chris Jenkins Android 8.0 Custom fonts Material design guidelines Brio design system by Pinterest's Lin Wang and Thorben Primke Pinterest stars you should follow on Twitter -> Mallika & Alice Christina's code from Kotlintown talk Christina & Huyen presentation from KotlinConf Sponsors Mapbox - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users. Show Notes Google IO episode (#84) for Christina's running story Pinte
-
112: Effective Java v3 - Item #9 - Prefer try with resources to try finally
08/02/2018 Duração: 16minIn this mini-fragment episode, Donn talks about Item #9 of the Effective Java (Third Edition) book - Prefer try with resources to try finally. Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson. Links Effective Java (3rd Edition) Book Sponsors Mapbox - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users. Check them out today at mapbox.com/android Contact @fragmentedcast [twitter.com] @donnfelker and
-
111: Effective Java v3 - Item #5 - Prefer Dependency Injection to Hardwiring Resources
29/01/2018 Duração: 13minIn this mini-fragment episode, Donn talks about Item #5 of the Effective Java (Third Edition) book - Prefer Dependency Injection to Hardwiring Resources. Please note, this episode references the third edition of the Effective Java book that recently came out. Previously we were doing the entire series on version 2, but we are now upgrading to version 3 of the book. We will not be re-doing any of the existing lessons, but if one was inserted in the mix, then we will do that lesson. This is the case with Item #5. We did Item #5 previously for v2 of the book, but v3 introduced a new Item 5 (and bumped the previous Item 5 up to 6). TLDR; Item #5 is new in the third edition of the Effective Java book. So listen closely. :) Links Effective Java (3rd Edition) Book Sponsors Mapbox - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allowing you to create beautiful custom maps to meet the needs of your Android users.
-
110: BuddyBuild and CI/CD services
22/01/2018 Duração: 41minIn this episode of Fragmented, we talk about CI, CD and CD services. That's Continuous Integration, Continuous Delivery, and Continuous Deployment. BuddyBuild a beloved 3rd party service of ours (and previous sponsor) is sunsetting their Android service, so Donn and KG discuss alternatives and the options they've been keeping an eye on. Listen on: Download directly Show Notes BuddyBuild is now part of Apple Google buys Sparrow Differences between CI/CDs services Good article on CI Nice infomatic explaining CD vs CD Options for CI Services Jenkins CloudBees - enterprise Jenkins Bitrise Bitrise and Firebase test lab NeverCode Welcoming Android developers blog post by NeverCode Microsoft AppCenter Ep 104 - Donn talks to the Samina from AppCenter Circle CI 2.0 docs Testing with Firebase test lab Team City - Jetbrains Code Ship Sponsors Mapbox - - Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control,
-
109: Learning Kotlin - Sequences the new Iterables
16/01/2018 Duração: 22minIn this episode of Fragmented, we go back to learning some Kotlin and look at the Iterable like data structure introduced called "Sequences". What is a sequence? How is it different from Iterable? When should I use it? Show Notes Kotlin Sequence Java Iterable vs Iterator - stackoverflow.com Eager/Lazy Eager evaluation: val lst = listOf(1, 2) val lstMapped: List = lst.map { print("$it "); it * it } print("before sum ") val sum = lstMapped.sum() // prints "1 2 before sum" Lazy evaluation: val seq = sequenceOf(1, 2) val seqMapped: Sequence = seq.map { print("$it "); it * it } print("before sum ") val sum = seqMapped.sum() // prints "before sum 1 2" Source stackoverflow.com answer Intermediate and terminal operations Notice that at each chain operation, a new temporary list is created: data class Person(val name: String, val age: Int) fun main(args: Array) { val people = listOf(Person("Chris Martin", 31),
-
108: State of React Native for Android with Ryan Salva
08/01/2018 Duração: 54minIn this episode Donn talks to React Native magician Ryan Salva. React native and cross-platform development is typically one of our most requested topics so we kick the new year off with React Native. Ryan and Donn dive into the state of React Native today for mobile development, how it's matured since inception, what kinds of apps are suited to be built with React Native, what kinds aren't, what are the benefits to using React Native, some tips like pushing updates without having to upload to the play store every time and so much more. Listen on! Show Notes (Apache) Cordova React Native CodePush CodePush moving to App Center App Center Service workers: an Introduction Misc Expo JS nvm npm Noteworthy quotes from this episode: As developers, we are empowered to break things; it's our god given right! Javascript is a beautiful disaster Sponsors Mapbox Android developers don't have to settle for a default same-map-no-matter-what option in their Android app. Mapbox offers complete map design control, allow