This podcast currently has no reviews.
Submit ReviewJoin us as we talk with Vinay Gaba, Android GDE and leading voice in Android development, about the future of the field. Vinay shares insights from interviews with top Android devs on their three-year predictions, and offers his own perspective. We cover AI's impact, evolving development roles, and crucial future skills.
You can find the full shownotes over at fragmentedpodcast.com.
Pessimists avoid risk, Optimists change the world.
In this episode, we dive into the power of rapid prototyping for Android developers using Kotlin. We explore how this crucial skill can impress stakeholders, accelerate your workflow, and help you stay ahead in today's fast-paced tech landscape. We'll cover use cases across scripting, web development (with Ktor & HTMX), mobile apps (Jetpack Compose), and even touch upon how AI is changing the game!
You can find the full shownotes over at fragmentedpodcast.com.
In this episode, we dive into the programming paradigm โ Data Oriented Programming (DOP) and why making data the star can simplify your code. Learn how well-modeled data reduces defensive logic, prevents invalid states, and keeps your apps stable. Weโll also contrast DOP with Object Oriented Programming (OOP) and Functional Programming (FP), sharing practical examples, tips, and resource links to deepen your understanding.
The full shownotes with illustrations are on fragmentedpodcast.com.
In this episode, discover how Dan Rusuโs pods4k Immutable Arrays library can deliver 2โ8ร speed boosts and 5ร lower memory usage in Kotlin/Android apps. We first revisit the fundamentals of autoboxing/unboxing and immutability to understand their impact on performance. Then we hear from Dan himself on his library, motiviations for building it, how the benchmarks were calculated and much much more. Our grand finale episode for 2024. Hope you enjoy it!
Full Shownotes at https://fragmentedpodcast.com/episodes/254.
Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.
Kaushik looks at a new logging library from Square called logcat. He starts by seeing how the popular Timber library does it along with the benefits. He then interviews Pierre-Yves Ricau (Piwai) of Square, the creator of logcat, to explore its origins and advantages.
You can find the full shownotes over at fragmentedpodcast.com.
You can find us on a few places:
Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode of Fragmented, Kaushik dives into the importance of creating your own starter template to streamline app development and minimize decision fatigue. He shares insights from his own starter template - Playground Android.
Looking to the future, JetBrains has an exciting tool called Amper that might make all of this much easier. Kaushik chats with JetBrainsโ Mรกrton Braun about Amper, an exciting new tool that could revolutionize Kotlin & Android project setups.
Tune in to learn how to go from idea to code with less friction!
You can find the full shownotes over at fragmentedpodcast.com.
You can find us on a few places:
Disclaimer: Links shared might be affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Kaushik explores the evolution of dependency injection (DI) in Android development. Dagger has been the de-facto solution for DI in Android but there might be a new king in DI-town. He also chats with friend of the show and dependency injection expert Ralf Wondratschek for a final gut check.
Shownotes: https://fragmentedpodcast.com/episodes/251
We're back from the hiatus with our SemiQuicentennial episode! With the momentous 250 comes some big announcements and a shift in the way we do things.
Listen to find out the details!
Shownotes: https://fragmentedpodcast.com/episodes/250
In this episode of our podcast, we explore the diverse landscape of Java versions within the Android ecosystem. Our guest is Michael Bailey, a seasoned Java expert who has been a frequent presence on our show since the early days of our podcast. We kick off with a solid foundation, discussing the differences between JDK and JRE, as well as the distinctions between the available Java JDKs. We also guide listeners through Android Studio settings, exploring how to select a suitable JDK, its utilization, and how it relates to JAVA_VERSION on one's home path/terminal.
As we dig deeper, we start to unpack some of the crucial Android app settings. From compileOptions to sourceCompatibility/targetCompatibility, we shed light on why these versions are important. We also demystify the compileSdk vs minSdk vs targetSdk, and how they interconnect. Drawing from Kaushiks's recent experience in building a new app, we provide real-life examples that can better clarify these topics for our listeners.
We conclude the episode by providing some valuable resources for further understanding and exploration. This episode is designed to be a comprehensive guide to understanding and navigating the intricacies of Java versions in Android development.
Find Michael Online
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast on Twitter or our YouTube channel
Donn
Kaushik
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this edition of Fragmented, we're thrilled to host Ishan Khanna, a software engineer at Tinder who possesses great enthusiasm for feature flags and A/B testing. Donn discusses why he invited Ishan on the show, highlighting Ishan's passion for feature flagging and A/B testing. The conversation kicks off with an insightful story from Ishan about feature flagging at Booking.com, leading to a discussion on the difference between A/B Testing and Feature Flags, when and why to introduce feature flagging, and how to measure its effectiveness. The show also focuses on the benefits and risks of feature flagging, along with ways to manage potential complexities in the codebase.
We then delve deeper into the topic of feature flagging, covering how to get started, what to look for in a tool, and the role of testing. Discussion points include the best practices for rollout percentages, considerations for multi-platform implementation, and the specifics of targeting in feature flagging. The conversation wraps up with an exploration of available tools for those looking to introduce feature flagging or A/B testing frameworks into their operations, examining when it might be necessary to build a bespoke solution.
The episode offers a wealth of resources for listeners, including links to an array of feature flagging and A/B testing tools, such as Firebase Remote Config, Optimizely, and LaunchDarkly. For more insight into the topics discussed, Ishan recommends his Droidcon Berlin talk on 'Customer Driven Development' and Stuart Frisbyโs talk on A/B Testing. To reach out to Ishan, listeners can contact him via Twitter, LinkedIn, or his website.
Here are the links mentioned in the document, in markdown format:
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast on Twitter or our YouTube channel
Donn
Kaushik
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, we talk to, Siggi Jonsson. Siggi helps guide us through the complex and often confusing world of Android app modularization. Our conversation will begin by shedding light on the importance of modularization, what triggers the need for breaking projects into multiple modules, and how modularization relates to team size, feature teams, and code ownership. This discussion is aimed at demystifying how and why developers often choose to modularize their applications.
As we move forward, we'll dive into more advanced aspects of modularization, such as the challenges of scaling and the potential missteps in over-modularization. Drawing on real-world experiences, we'll examine the red flags that signal a need for revising your modularization strategy. This part of our discussion will also highlight some specific tools and techniques that can help manage and visualize your project's modularization, and Siggi will share his own experiences and insights into how these tools have assisted in his modularization strategy.
In the final part of the episode, we'll touch on the benefits and strategies of proper modularization. Siggi will share practical advice on how to tackle big projects, fix issues with modularization, and make a smooth transition from monolithic to modular structures. We'll also talk about some tools that can be handy in this process. Before closing, Siggi will offer his top tips for developers embarking on their modularization journey and share some valuable resources to help them. Siggi will also provide updates on his latest work and how listeners can reach out to him.
Sure, here are the links provided in the text, formatted in Markdown:
Find Siggi online here:
Need to learn Git? Donn has the course for you. In this FREE course, you'll learn everything you need to know to start working with Git daily. Watch it here.
@fragmentedcast on Twitter or our YouTube channel
Donn
Kaushik
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this podcast episode, we have the pleasure to host Fred Porciรบncula, a Google Developer Expert (GDE) known for his work with Kotlin Inject and his invaluable contributions to the Android development community. Fred offers his expertise on Dependency Injection (DI), Kotlin Multiplatform (KMP), and how they intersect.
We kick off the conversation by discussing Dependency Injection (DI), its importance, and the options available to developers, including Dagger, Hilt, Anvil, Koin, and Kotlin-Inject. Fred explains the use and impact of DI in the Kotlin Multiplatform (KMP) world, considering Daggerโs current lack of KMP support and debating whether one should use separate DI tools for Android apps and KMP components.
Delving further into Kotlin-Inject, we explore its features, usage, and how it differentiates itself from other DI solutions. Topics discussed include its unique handling of Scopes, its support of constructor injection, and its utility in building dependency graphs. Furthermore, we examine the timeless debate of Dependency Injection versus Service Locator.
Toward the end of the episode, Fred presents his thoughts on the advantages and disadvantages of exclusively using Kotlin-Inject throughout an application. We also tackle the concept of โVanilla Injectionโ - refraining from using DI libraries at all.
For further learning, we recommend resources like Fred's insightful article on transitioning from Dagger/Hilt to Kotlin-Inject, a Dagger issue discussing KSP support, and a Kotlin-Inject discussion on Anvil-like features. Links to these resources, among others, are provided below. Donโt miss out on this engaging and informative episode with Fred Porciรบncula!
Find Fred Online Here
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast on Twitter or our YouTube channel
Donn
Kaushik
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk to an old friend of the show, Colin White, about Treehouse, a combination of the Redwood and Zipline libraries.
Colin is a Staff Engineer at Cash App (Block).
Redwood is a multiplatform Compose library that allows you to target multiple UI toolkits on various native platforms. Ultimately this allows you to share presentation logic.
Zipline is a multiplatform JavaScript engine for Android, iOS, and the JVM, which uses Kotlin for calls in/out of the JavaScript land. This allows you to update the application logic of your apps without the traditional song and dance of the app store approval and release process.
Treehouse is the combination of both libraries, Redwood and Zipline. Listen in to learn more ...
@fragmentedcast on Twitter or our Youtube channel
Donn
Kaushik
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik announce that they are steering the podcast back into Android waters. In other words, the Fragmented Podcast is returning to its roots ... we're back to being a 100% Android Development focused show.
We're glad to have you as a listener, here's to the future of Android Development. ๐
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or kau.sh/blog or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk to long-time friend Dan Lew about his recent career switch from Android developer to TypeScript/Node.js/Progressive Web App Developer (and more).
It's an interesting discussion that covers ...
Need to learn Git? Donn has the course for you. In this FREE course, you'll learn everything you need to know to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or kau.sh/blog or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk about one of the age old bike shedding topics - code formatting, and how you can solve it with automation and tools.
Code formatting can turn into an endless debate amongst peers and teams, and what Kaushik and Donn have found is that this can be delegated to a tool and automated. Freeing you and your team of having to worry about proper indentation, bracket placement, etc. By relying on a well defined tool and some automation you can clean your code up, make it much more uniform and easier maintain.
We talk about ktfmt, a Kotlin code formatter that was released by Facebook. We dive into ktlint, detekt and more. We also dive into spotless which can help you by integrating ktfmt into your gradle build pipeline.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or kau.sh/blog or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk about the fear of shipping, some impostor syndrome and how it contributes to uncertainty and doubt in your capabilities as a software developer.
Recently Donn embarked on a mission to come up with an idea and ship it within 24 hours (which he did do). The end result was a net benefit of confidence, speed and skill acquisition. This helped reduce any doubt, uncertainty and ultimately fear of shipping a product faster.
That's what this conversation is about ... how to doing a project like the 24 hour MVP can remove fear, uncertainty and doubt and help you ship your side project/products faster.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or kau.sh/blog or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk about 5 new-ish Kotlin constructs that you might not be aware of.
The constructs that they talk about are:
You'll learn what they are, how you can use them and when or when you might not want to use them, and more. We hope you enjoy.
Enjoy!
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this short episode, Donn talks about the CODEOWNERS file and how it can help you ensure teams review the code that they are responsible for before merging.
The CODEOWNERS file is a file that you drop into the root of your project (or into the /docs or .github/ directory) that tells GitHub (or whatever git host you're using) to require a review for any code changes that match the patterns as defined in the CODEOWNERS file. You'll specify a matching pattern and users, or teams that own that pattern of files and they will be required to review the PR before it can be merged. This helps prevent unwanted changes to files that may or may not be owned by one team or another. This is useful as teams grow larger and need more control over the changes in their application codebase.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks about the tips and tricks he's used over the last 20 years of consulting, freelancing and working full time to find jobs and new opporftunities. We're hoping some of these tips help those affected by the recent tech layoffs.
These are tips that Donn still uses to this day. They work wonders to help you land a job quickly when you do them.
The tips:
Ancillary Tips to Boost Your Chances of Landing a Job:
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk about their thoughts on Jetpack Compose and XML for Android layouts and which one you should learn first.
As with every conversation in tech ... it depends on what you're trying to do, where you are at in your career, what the company is doing and more. Donn and Kaushik go into both of their thought processes around Compose and XML and when you should learn one or the other, or even both and whether Jetpack is the future ... or is XML here to stay?
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk about the thought of having a terminal for Android.
Have you ever wished you could whip up a quick script to get the current location of a device, add it to cron and do some automated tasks on your phone? Wouldn't it be nice to have low level access to your system like you do on your desktop?
In this episode, Donn and Kaushik dive into the details of what that might look like and why they find it intriguing.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Kaushik goes solo and interviews Ben Orenstein. Ben is a prolific Ruby developer, an amazing conference speaker, an ardent vim-ster, and now the CEO of Tuple.
Kaushik has been a big fan of Ben's work and was super stoked to talk to Ben and pick his brains on a host of topics: starting the company Tuple, pair programming in general, learning different programming languages and technology, giving better conference talks and more!
This episode is chock full of wisdom from Ben. Enjoy!
Ben is @r00k listen to his podcast - The Art of Product
Follow @fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
kau.sh's blog or @kaushikgopal (on Twitter)
In this episode, Donn and Kaushik talk about how many Android applications seem to suffer from the disease of over-architecture while neglecting the product (UI/UX) itself. They discuss why this is deterimental to the user experience in the Android platform and how they've seen it evolve over the years. They attempt to provide some thoughful ideas on how this can be rectified in the future and more.
We're looking for your feedback on this show. What are your favorite product apps that are just a joy to use on Android? Let us know on Twitter at @donnfelker and @kaushikgopal and @fragmentedcast
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk to John Rodriguez (jrod) about the Paparazzi library which allows you to perform UI screenshot testing on Android without an emulator or physical device.
They talk to John about what screenshot testing is, why it's important, advantages and it's disadvantages as well. You'll learn how to use Paparazzi and how it can test various different screen configurations without having to run an emulator. You read that correct ... without an emulator.
If you're looking to incorporate screenshot testing into your app, this is the episode for you.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode Donn and Kaushik talk about frustration, finding "flow state" and how it's known as "the madness" and how to deal with it.
We originally were going to talk about an other topic, but during the off air banter Donn brought up how he was frustrated with losing/burning so much time on a task that he had for his side project. He only meant to spend a little bit of time on it and then spent WAY more time than he meant to. He got to the point where he had to stop working on the project, yell at himself for not time boxing it and then he had to refocus. This piqued Kaushik's interest and they decided to hit record to talk about this topic as its something they both deal with and have also hear many other developers deal with too.
The "Madness" is when you get consumed by your work and you're so passionate that you lose track of time, eating and more. You've become consumed ... you have "The Madness". This happens to all developers, and Donn and Kaushik talk about how to not let this derail your day when you have other responsibilities as well as life and work. We hope you enjoy today's off the cuff developer discussion.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk to Android GDE Vinay Gaba about learning Jetpack Compose.
They talk about how to learn how to use Jetpack Compose by example (and Vinay's excellent talk by the same name). How to use Jetpackcompose.app to help you find the right Jetpack Compose component and how to use ShowKase to organize discover and visualize your Jetpack Compose Elements.
We then dive into why someone might want to learn Jetpack Compose and how to start learning it. They touch briefly on the parts of Compose, such as the compiler, runtime, UI, foundation, and more. They wrap up by talking about Unidirectional State flow and by answering the hot question ... "Is Jetpack Compose ready for production?"
If you're looking to learn more about Jetpack Compose, this is an episode for you.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode Donn talks about that pit of the stomach feeling we all get when we feel like we should know something but we don't. It's that voice in our head as developers that makes you feel like an idiot even when you're not.
Donn gives examples of how even senior engineers are subject to this feeling and how they are often the ones to not speak up about it simply because of their experience level and seniority.
This episode talks about why we get this feeling and how to combat it going forward.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Kaushik peppers Donn with questions about his foray into Android Turbo, Hotwire, and the concept of "Native Where You Need It".
Donn recently launched Android Jumpstart, the Android client for the Jumpstart Rails trifecta. Jumpstart Rails allow you to launch your SaaS business much faster than if you were to do it from the ground up.
The Android client for Jumpstart Rails builds on top of Turbo and Hotwire, two technologies that help power the Hey email client and Basecamp (the project management app). By using Turbo and Hotwire you're able to get very fast response times and speed with "HTML Over the Wire" (aka Hotwire) with Websockets and much more. This allows your web app to be super fast and when packaged with Android Turbo, allows your web app to live within a native shell. HOWEVER, this doesn't mean its simply a web wrapper. With Android Turbo you can specify which URL routes you'd like to be as native and which ones you'd like to remain web-based. This means you can choose to use Native when you need it, and delegate back to the web for everything else.
This is the solo founder, indie-hacker, and startup SaaS dream come true. You can come to market faster, iterate with a smaller team and get native benefits when and where you need it, all while also allowing your application to be flexible in a web manner.
If you're thinking about building a SaaS app that needs a web presence, Android and iOS presence but want fully native experiences in certain areas then this will be the episode for you.
Need to learn Git? Donn has the course for you. In this FREE course you'll learn everything you need to know in order to start working with Git everyday. Watch it here.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode Donn and Kaushik talk to Konstantin Liakhovskii about Expo development and how it takes cross platform development and its productivity to the next level.
Konstantin dives deep into the usages and reasons why Expo (and React Native) are still very good options for companies that are looking to adopt a cross-platform application.
Stoa is a community platform for creators and anyone who wants to monetize their community. Sign up at getstoa.com and get 3 months free when we launch. Early access coming soon.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode Donn sits down and talks to Ephraim Schmitt about how he changed careers from being an exotic car salesman to a mobile software developer. It's a fascinating and inspiring story for anyone looking to get into software development.
We talk about the mental and financial struggles, how he learned to start coding, how you can find opportunities everywhere, how to interview better, where to look for positions when you're just starting out, why volunteering/doing something for free early on is fast way to open doors and build your network and so much more.
If you or anyone you know is looking to break into the software industry, this is the podcast for you. You'll leave with a couple pages of notes, tips and the inspiration you need to jump into the world of software development.
Stoa is a community platform for creators and anyone who wants to monetize their community. Sign up at getstoa.com and get 3 months free when we launch. Early access coming soon.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode Donn and Kaushik are back together on the mic. After an extended break, they both returned renewed and ready to dive into all things software, starting off with IDE themes, plugins and what they've been up to since they were last on the show together.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode Donn talks about something not giving up and persevering when the going gets tough in software, your career and more. It's easy to give up, but the real reward is when you persevere.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik talk about some of the books that they're reading and thoughts and recommendations on each.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or jkl.gg/b or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.
In this episode, Donn and Kaushik reunite for an episode on how they use productivity tools like various todo apps as well as how the organize information for storage and easy retrieval in their day to day lives.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Kaushik talks to his good friend Prabhjot and learns about "Android Enterprise". This is the official way for companies or organizations to enable the use of Android devices and apps in the workplace.
Prabhjot talks about how he setup the infrastructure to provision devices and the different capabilities the solution allows.
If you ever wondered what kind of control is possible, listen to this episode and get a nice scary reality check. After listening to this episode, you'll think twice before accepting free devices from companies or letting policy apps be installed on your phone.
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn continues to dive into his favorite software book: Working Effectively with Legacy Code. He talks about one of the fundamental tactics of the book: Introducing seams
You'll learn what a seam is according to the book, as well as how Donn interprets it so that you can get the same benefit he has gotten from it. You'll learn how to introduce seams into your codebase through method injection, interfaces, abstract classes, and the static gateway pattern (aka: wrapper pattern).
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks to Jay Ohms about Turbo Native for Android, Hotwire, and how to build apps faster with Hotwire, Turbo, Stimulus, and Strata. Jay is an Android developer at Basecamp.com and Hey.com and has been building Hey with Android Turbo since it has been released (he's one of the developers of it).
You'll learn what Hotwire is, how to use it with Android Turbo (and Stimulus and Strata) and how you can create apps faster and more maintainable by marrying the concepts of the web with native code. It's a fascinating technology, and one that Donn will be using very shortly for a SaaS product he's working on.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks dives into his favorite software book: Working Effectively with Legacy Code. He talks about one of the introduction level topics: The Legacy Code Change Algorithm
You'll learn what it is and how you can use it as the basis for this new series that will be focused on the book, Working Effectively with Legacy Code.
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks to software developer Alan Hill about the Growth Mindset and how it applies to software development and life in general.
They chat about pull request feedback lifecycle, learning new tech, and how applying a growth mindset can advance you in your career further than you could have imagined. They wrap up by going through Fixed Mindset vs Growth Mindset "back and forth" to discuss the differences.
and-growth-mindset-infinity-scaled.jpeg">Mindset image
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks about the difference between working at a big tech company vs freelancing.
There are many pro's and con's for each. What is best for you? Listen to the episode and find out.
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks about the importance of following code conventions and coding styles in codebases.
You'll run into various different coding conventions throughout your career. Sometimes it's as an employee, sometimes it's as a freelancer or consultant or just a small side project. The number of coding "styles" that you'll see will blow your mind as you work through your career. The big question is ... should you adhere to the current coding convention that is used in the app/file/etc or should you use your own favorite or an industry standard?
In this episode, I'll help explain the differences so you can make an informed decision going forward.
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks to David and Ross from Squeaky Dog Studios about building a business out of a side project.
David and Ross are long-time serial side project developers with experience that dates back to the Palm era. They've built games, apps, and now Watch Faces.
We dive deep into how they went from building their watch faces for Android as a side project and how they turned it into a full-time business in which one of the co-founders works full-time. We talk about building the app, pricing, support, which features to build, paid vs free, trial conversions, supporting your app and much much more.
If you've ever wanted to build a side project into a business, and it's app-based... this one is for you.
Android Apps by Squeaky Dog Studios on Google Play
Other links by Squeaky Dog Studios
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks about the three things that every developer needs to know how to do.
These three things include:
How to identify and stop premature optimization
How to write tests and know the difference between unit, integration and end-to-end tests.
How to set up a continuous integration server
While there are vast arrays of other things all developers need to know how to do, and we will cover them in future episodes, this small list will help you vastly in your career. It has helped mine (Donn) a ton.
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn answers a listener's question. The listener wanted to know how to choose what to learn next in Tech.
Donn provides 6 tips (actually 7 if you count a hidden one) on how to pick what technology to learn next. He provides a simple framework that will help you check whether you should pursue a particular technology or not.
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks with Philipp Lackner about growing an online presence within the Software Industry with Instagram and YouTube.
You'll learn how Philipp went from 0 to over 80,000 followers on Instagram. This was done all organically by posting valuable content every single day to his feed.
You'll also learn how he uses YouTube (as well as Instagram) as a marketing channel for his own course products that he sells via his site.
We wrap up by talking about content strategy, what tools are used, captions and hashtags. This episode is chock full of great info if you're learning how to grow your following online.
@donnfelker and donnfelker (on Instagram)
Freelancing for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode Donn talks about why you need to learn React (or Flutter) - so you can truly understand the Unidirectional data flow pattern in a framework that was built for that purpose alone.
Working with other frameworks which bolt on a custom unidirectional data flow is often hard to understand. When you work with React and learn how it works, the concept of Unidirectional data flow starts to make much more sense as that is the default way to implement UI's in technologies like React (and Flutter).
This exposes you to the pattern and helps you understand it. In turn, this will help you become a better developer.
donnfelker.png">Unidirectional Data flow Image
How to learn React:
How to Learn Flutter
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks with Mitch Tabian about Kotlin Multiplatform Mobile, also known as KMM.
Mitch explains what KMM is, why he decided to use it, and how it works from a developer's perspective. The goal was to build an app and develop both the iOS and Android versions. Mitch talks about his experience in building a KMM app. We cover the pros and cons, what worked vs what did not, and his advice on using KMM going forward. Mitch also shares content about how to build native components in Jetpack Compose and SwiftUI as well as architectures used in his KMM project.
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn talks with Glenn Leifheit from Microsoft about a concept known as "Secure Development Lifecycle". Glenn is a Senior Security Program Manager at Microsoft.
Glenn explains to you what the secure development lifecycle is, how it works and how you can implement something like this in your company. He also shares the top tips you can implement in order to get the quickest benefit of the Secure Development Lifecycle
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
This is the original story of how Uber was built ... this is a fascinating story. You don't want to miss this. Donn talks to Jason Roberts. Jason was chosen to be Uber's CTO when the company was in its infancy (but didn't accept the offer). Jason shares the story of developing the code that eventually ran Uber from a couple of cars to a highly distributed system with an impressive amount of rides.
We talk about building what is needed when it's needed, the tools that he chose to build Uber's platform on. Early startup learnings, and how Uber originally ran on PHP before he chose to move it to Node.js.
Jason shares his story of how he met Travis (Uber's CEO who took it from a small company to a huge international corporation), how they built the systems, and team and much more. You'll learn how networking, working on interesting things, and seizing the moment and luck played into him landing his role at Uber.
Finally, we wrap up by chatting a bit about how being a generalist in an early-stage startup is beneficial (vs being a specialist).
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Consulting for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links we share to products are affiliate links. They help support the production of Fragmented. Thank you for your support.
In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it's covered here.
In this episode, Donn outlines how you can optimize your home office so that you look, sound, and perform the best that you can. From audio to video, to your body, and everything beyond, it's covered here.
Donn talks about everything you can do to improve your home office. From microphones, lighting, and webcams for your video calls to chairs, standing desks, and more. This episode has all the links below for all the products discussed.
Take even 20% of the recommendations and apply them to your home office and you'll see a drastic difference in your productivity and happiness in your home office.
Microphones
Boom arms for Mics
Webcams
Docking Hub
Lighting
Headphones
JVC Xtreme-Xplosivs Wired Earbuds - Donn's Go to
Sony MDR-7506 Professional Headphone
No, I don't use Bluetooth headsets at work, though many do. If they work for you, you might want to check out the Audio Technica ATHM50XBT's or the Bose Quiet Comfort 35's
Chairs
Standing Desk
Anti-Fatigue Mats
Monitor and Monitor Arms
Keyboard
Mouse
Air Quality
Focus Music
Mobility, Desk Ergo, and Back Pain Resources
@fragmentedcast or our Youtube channel
@donnfelker and donnfelker (on Instagram)
Consulting for Mobile Developers (Donn's YouTube)
kaushikgopal (on YouTube) or blog.kaush.co or @kaushikgopal
Disclaimer: Many of the links are affiliate links. They help suppor the production of Fragmented. Thank you for your support.
In this episode, Donn talks with DevOps expert, Will Button about everything DevOps-related. If you're ever wondered how and what DevOps is, then listen in.
Will walks you through the definition of DevOps and how it's used in a company. You'll learn the 20% of DevOps you should know that will get you 80% of the benefit. You'll also learn about a bunch of automation technology that will help you and your team level up your environments so that you can become super efficient in your day-to-day engineering activities. In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new? This episode is for you.
You'll learn Donn's proven 5-step methodology for learning new technology. This is the same method Donn has used for over 2 decades of learning new technology. We hope it helps you.
In this episode, Donn talks about the best way to learn a new technology from the ground up. Want to learn something new? This episode is for you.
You'll learn Donn's proven 5-step methodology for learning new technology. This is the same method Donn has used for over 2 decades of learning new technology. We hope it helps you.
The 5 Steps:
Watch the entire course here, for free
In this episode, Donn returns for a solo episode to talk about his thoughts on Quality over Quantity and why it's important to software development and productivity in general.
In this episode, we talk to acclaimed Android developer Joaquim Verges. He recently embarked on a journey of making is laptop not burn like a furnace when using Android Studio. He landed up on this unknown effort by Jetbrains called Projector and seems to have found programmer Nirvana.
Listen to his adventures.
Anvil is a Kotlin compiler plugin that makes your life a tad bit easier when using Dagger 2. In this episode we talk to Ralf Wondratschek from Square who created the library and open sourced it for all of us.
After touching on some of the basics, Ralf dives into the thinking behind Anvil and how it evolved into the tool it is today. It's filled with nuggets of wisdom especially if your app uses Dagger for Dependency Injection.
Enjoy!
In episode 1 of Fragmented we talked about Testing. 200 episodes in, we decided it's a good time to do a state of the union for mobile testing. We talk with Valera Zakharov who's a Staff Engineer at Slack and considered one of the experts in the field of mobile testing. Hope you enjoy this one!
In our 200th episode, we talk about Serverless Programming.
What is it? What's an example of a service I could build with Serverless Programming? What are the advantages or disadvantages? We talk about it all in this episode.
Also, ๐ for being listeners. We've stuck together for 200 of these. Kaushik & Donn are incredibly grateful to have you folks as listeners.
A tweet from a famous tech journalist about Android vs iOS spurs a storm. In this episode, Donn and Kaushik given their honest thoughts on iOS vs Android; and being developers for the platform.
We're back and Fragmented is going Indie again. A quick episode on the future of Fragmented.
We interrupt our regular programming for this extremely important message.
We stand with our black sisters and brothers against the evil that is racism. The recent events of police brutality and oppression against black people have been truly horrifying.
Please take the time to listen to the audio snippet on the #BlackLivesMatter movement from today's episode. It is a TedX talk by the far more eloquent Kennedy Cook who's voice and words are more powerful than ours.
We've never been very vocal about political issues at Fragmented. But that doesn't mean we don't care about these issues. On the contrary! We do our best to have our actions speak louder than our words and let others with first hand experience speak out. Then importantly we aim to listen.
But these aren't regular times are they? The horrifying brutality we're seeing against people of color is nauseating. The Covid-19 outbreak has made action particularly difficult so for today we will start with these words.
OK, If you really want to know how git works, this is the episode for you. KG talks with his longtime colleague and mentor Gordon McCreight. Gordon is a wiz in general but his knowledge of git goes deep. So in this episode, KG goes solo and really dives in-depth about how git works.
Buckle up and listen on; you'll come out on the outer side with a much sounder understanding of scm.com/">git.
Objects which are no longer referenced can be evicted with git prune; though this is a low-level operation which is often called from git gc. By default it will not remove commits newer than 2 weeks old, and of course the commits that are reachable from that; so provided the branch (or tag) deleted has recent commits, it will stay around in the git repository for up two a fortnight afterwards.
Learn and practice Android development from inside your browser. Visit Educative.io/Fragmented to get 10% off.
In this episode, we chat with friend of the show Leland Richardson. Leland is a main contributor to Jetpack Compose. But in this episode, we pepper him with questions on how he came to the position he's in viz. a reputed Software Engineer contributing to probably the most cutting edge library in development for Android.
This was a treat and inspiring episode! Listen on:
Learn and practice Android development from inside your browser. Visit Educative.io/Fragmented to get 10% off.
Have you ever gone on on-call rotations for your company? What is on-call? How to operate a successful on-call strategy? What does on-call for mobile mean? What are some tools and resources to help with on-call rotations?
In this episode Donn and Kaushik dive into these topics.
Learn and practice Android development from inside your browser. Visit Educative.io/fragmented to get 10% off.
What are Polyglot programmers, should you be one? Listen to this episode and find out!
Learn and practice Android development from inside your browser. Visit Educative.io/Fragmented to get 10% off.
Well, the world took a crazy turn and everyone's working from home now. How do you work from home? An experienced developer who's done this before talks to a newbie and discuss their thoughts.
git commit --allow-empty -m "todo: listen to fragmented" -m "send KG & DF tweet"
Learn and practice Android development from inside your browser. Visit Educative.io/Fragmented to get 10% off.
title : 192: What is your backup strategy? ๐ผ permalink : 192
In this episode, we talk about what a good backup strategy looks like and the different kinds of data you should be backing up.
Stay safe and think about your backup strategies.
KG's primary Mac:
rsync script that KG uses:
This mirrors both drives defensively (-n is dry run)
rsync --partial --progress --archive --update \
--verbose\
--human-readable\
--exclude='$RECYCLE.BIN' --exclude='$Recycle.Bin' --exclude='.AppleDB' \
--exclude='.AppleDesktop' --exclude='.AppleDouble' --exclude='.com.apple.timemachine.supported'\
--exclude='.dbfseventsd' --exclude='.DocumentRevisions-V100*' --exclude='.DS_Store'\
--exclude='.fseventsd' --exclude='.PKInstallSandboxManager' --exclude='.Spotlight*'\
--exclude='.SymAV*' --exclude='.symSchedScanLockxz' --exclude='.TemporaryItems'\
--exclude='.Trash*' --exclude='.vol' --exclude='.VolumeIcon.icns' --exclude='Desktop DB'\
--exclude='Desktop DF' --exclude='hiberfil.sys' --exclude='lost+found'\
--exclude='Network Trash Folder' --exclude='pagefile.sys' --exclude='Recycled'\
--exclude='RECYCLER' --exclude='System Volume Information' --exclude='Temporary Items' --exclude='Thumbs.db'\
-n\
/Volumes/xhd_strg/ /Volumes/xhd_strg_bkp
Check out the new Square YouTube channel for developers. Square has SDKs and APIs to make payments and run a business.
Today we talk about logging. When to log, how to log, what to log - our thoughts on the subject.
Check out the new Square YouTube channel for developers. Square has SDKs and APIs to make payments and run a business.
In this episode, Donn and KG talk about the post Tim Bray recently wrote - Why Google did Android. They then touch on Chrome becoming a monopoly and tips on what folks can do to be a little more privacy conscious on the web.
We've all heard of the Y2K problem, but there's also a similar coming up this 2038 for us programmers. In this episode we dive into the 2038 problem (... after of course talking about our opinions on new year resolutions).
Get 1% better every day folks... Listen here:
In this episode KG and Donn talk about KG's recent jaunt with Docker. In the attempt to setup continuous deployment for his blog, KG explains his simple requirement and how it lands up requiring some basic Docker. Donn then closes it out with some interesting in-depth knowledge on how to use Docker
It finally happens! KG and Donn talk about Coroutines with two experts at Google Manuel & Sean. We've waited quite sometime on Fragmented to discuss this topic. We wanted to make sure Coroutines was mature enough to be compared with the contenders. Listen to find out more!
In this episode, Donn and Kaushik talk about some changes coming down the pipe for the podcast and what it means in the long run.
Want to know what the changes are? Well, you're going to have to listen to the show... click play and listen away.
Once again, thank you all for joining us on this journey, it's been a fun and wild one.
In this decompress episode, Donn and KG talk about how their 2019 went. It goes from Dagger talk to Kotlin talk to Kotlin Conf talk. Give it a listen and enjoy!
Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at youtube.com/squaredev and let them know you heard about it from us.
In this episode, Kaushik tries to talk through this question.
Thanks to friends of the show Jeroen, Yigit and a bunch of others who ran through some ideas on this one.
Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at youtube.com/squaredev and let them know you heard about it from us.
How do you know what to test when you don't even know how to write the code that you need to test? This is a paradox that many developers find themselves in daily.
In this episode Donn talks about his strategy for dealing with unknowns in programming, namely around testing and how to figure out how to write tests for new code that might be difficult, unfamiliar or even legacy code.
Square has SDKs and APIs to make payments and run a business. Even better, Square has a new YouTube channel for developers! Check out Square's new YouTube Channel for Developers at youtube.com/squaredev and let them know you heard about it from us.
Learn UX/UI design flatironschool.com/fragmented in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! flatironschool.com/fragmented!
Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at flatironschool.com/terms.
See you in class!
App Modularization has plenty of benefits and a lot of Android devs today are starting to modularize their android app.
A common problem though that most folks will start to run into is - how do you manage your database objects in these modules? do you create a single module with all your database dependencies (modularize by layer), do you do the right thing and modularize by feature so each module has it's own database file etc.?
In this episode Kaushik grapples with that question and tries to come up with an answer.
Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.
Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at vettery.com/fragmented
--
Learn UX/UI design flatironschool.com/fragmented in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! flatironschool.com/fragmented!
Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at flatironschool.com/terms.
See you in class!
In the world of Functional programming where pure functions don't encourage side-effects, how does on actually do any IO?
So in this brave new world where everyone is adopting more FP principles, do we just stop doing database operations? Listen to this episode to find out.
Learn UX/UI design flatironschool.com/fragmented in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! flatironschool.com/fragmented!
Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at flatironschool.com/terms.
See you in class!
Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.
Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at vettery.com/fragmented
In this episode of Fragmented, Donn talks about when it's appropriate to comment your code.
Donn then dives into the types of code comments, when you might want to comment vs when you might not want to (depending upon your consumer) and then gets into how he decides to comment his code with a simple two-step process.
Enjoy!
Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.
Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented
Learn UX/UI design flatironschool.com/fragmented in 24 weeks and discover our global community on campus or online and go back to school with Flatiron School! flatironschool.com/fragmented!
Change careers with confidence with 1:1 support from our dedicated Career Coaches and a money-back guarantee. Complete details at flatironschool.com/terms.
See you in class!
In this episode of Fragmented, Kaush breaks down how he begins creating and writing technical talks, using a talk he's about to give at the Mobilization Conference.
Enjoy!
Post it notes 1024x768.jpg">pic1 1024x768.jpg">pic 2
Vettery is an online hiring marketplace that is changing the way people hire and get hired. Make a free profile, name your salary, and connect with hiring managers from top employers today.
Listeners of Fragmented get a $300 bonus if you accept a job through Vettery! Sign up at vettery.com/fragmented
Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.
Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented
As Android developers we know Java and now Kotlin. But to become even more seasoned developers, learning newer languages can be a level booster.
The list can go on and on, especially if you've been in the industry awhile. So, when does it make sense for you to learn a new language?
When should you learn a new language? When does it make sense? How do you do it?
In this episode KG and Donn discuss the merits of learning new languages, what new languages theyโve picked up and how they feel its important for them and their careers as developers.
Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily.
Sign up for an exquisite pair of Bitrise Branded Socks at https://go.bitrise.io/fragmented
How do you know if some code is over-engineered?
What does that even look like?
How do you know if you're over-engineering the code that you're writing?
What if you recently started at a new company, how do you know if the code you're working with is over-engineered?
In this episode, Kaushik and Donn go back and forth on this topic ...
This episode is sponsored by Instabug -
Understand How Your App is Doing with Real-Time Contextual Insights From Your Users
Kotlin isn't a magic bullet that prevents NullPointerExceptions.
Not at all.
What Kotlin does do is force you to think about how you want to handle your nulls. through Kotlin forcing you to think this through, the hope is that you'll avoid NullPointerExceptions. The only problem is, Kotlin has the !! operator, also known as the "Not Null Assertion Operator". This operator basically says "Hey Kotlin, trust me, I'm a pro, I know what I'm doing ... I KNOW THIS WON'T BE NULL".
This... is a code smell.
In this episode, Donn walks through why Kotlin's Not Null Assertion Operator (!!) is a code smell and what you can do to alleviate it.
Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily. Sign up for an exquisite pair of Bitrise Branded Socks, here! https://go.bitrise.io/fragmented
One question that Kaushik and I get all the time is this ...
I'm starting to learn how to build Android apps, which language should I learn? Kotlin or Java?
In this episode Donn answers this question and gives valid points on why both languages are valid options and why you might want to consider one over the other.
He provides caveats to why you might want to use one language over another and some of the trade offs of Java and Kotlin and how they operate together.
If you're wrestling with this question, this is the show for you ...
Build amazing apps in Java, Kotlin or whatever tech you prefer and use Bitrise to automate your Android integration, build, test and deploy process quickly and easily. Sign up for an exquisite pair of Bitrise Branded Socks, here! https://go.bitrise.io/fragmented
Kaushik is back in this weeks podcast. ๐
Donn and Kaushik talk about testing RxJava streams with a Kotlin extension method and how and when to test various scenarios. Donn talks about his thoughs on the Testing Pyramid and why he think's its incorrect and how you can help shift your thinking in regards to it. They then talk about IDE themes and how the theme can help you with your day to day development and more.
They wrap up with some talk about devleoping on Mac's vs Windows and Linux.
We hope you enjoy ...
This week Donn talks about what pattern you should use when developing your application. Is it MVP? MVVM? Mabye MVI? Perhaps it's something else. Find out in this episode.
We hope you enjoy ...
In this episode Donn and Kaushik sit down with Instacart Engineer Colin White to discuss a new image library he has created called Coil.
Coil is a Kotlin-first image library that focuses on ease of use, simplicity and extensibility. In this episode we ask him the question you're probably wondering ... "Why create an image library, isn't this a solved problem already?" and then move onto the details of how the library works, and what it offers developers.
From Donn's perspective - It's an interesting library and gives you what you need with minimal footprint but offers you the extensibility that you'd want in the future. Its a good balance of "just enough" and "I might need this".
Enjoy
This week Donn and Kaushik talk to Leland Richardson from the Android team at Google about Jetpack Compose.
Jetpack Compose is declarative component-based UI runtime for Android. With compose you can build your UI with functions in Kotlin to easily "compose" what your UI would look like.
We dive deep in this episode. We talk about the background and influence React had on the project, we dive deep into some of the decisions made regarding the library and much much more...
We hope you enjoy ...
In this episode, Donn talks about public speaking and how it can help you grow your career.
He dives in by telling a story of his first speaking engagement and how he was riddled with fear, insecurity, doubt and anxiety. He then talks about why speaking can help you grow your career and life leaps and bounds. He wraps up with possible things you can speak about when starting out as well as where you can get your break into the speaking circuit.
This episode is sponsored by Instabug. Squash bugs ๐ in less than a minute with Instabug!
Special offer for all listeners, go to instabug.com/fragmented Signup for free, install the SDK, and you will get Instabug's brand new t-shirt!
Marcel Schnelle joins Donn in this episode to talk about how to get your application under test and some steps to go from scared to confident in your testing process. The second half of the show they dive in deep to JUnit 5 and its new features.
JUnit 5 is backwards compatible with JUnit 4 and offers a slew of new features and extensibility points which make the framework much more appealing going forward. We're convinced you'll enjoy this episode and leave wanting to get your app under test - even more than it already is.
Enjoy.
Get ahold of Marcel:
In this episode, Donn continues his talks about Kotlin Lambda Expressions. He explains how you can use lambda expressions as function parameters and as return types for functions.
This is a very dense episode - if you get lost look at the code snippets below or view on them on fragmentedpodcast.com
class LogReader {
fun processFile(file: File, processLine: (String) -> Unit = {}) {
file.forEachLine {
println("Number of Chars: ${it.length}")
processLine(it)
println("Line Done Processing")
}
}
fun processFileWithHandlers(file: File, logHandler: LogHandler) {
file.forEachLine {
println("Start of Processing")
logHandler.handleLine().forEach { handler -> handler(it) }
println("Line Done Processing")
}
}
}
interface LogHandler {
fun handleLine(): List<(String) -> Unit>
}
val reader = LogReader()
val textFile = File("/Users/donnfelker/scratch/lorem.txt")
// Process with single lambda
reader.processFile(textFile, { println("First 10 Chars: ${it.substring(0..9)}") })
val logHandler = object : LogHandler {
override fun handleLine(): List<(String) -> Unit> {
return listOf<(String) -> Unit>(
{ line -> println("${line.substring(0, 1)}") },
{ line -> println("${line.substring(2, 4)}") },
{ line -> println("${line.substring(5, 10)}") }
)
}
}
// Process with multipe handlers via the logHandler
reader.processFileWithHandlers(textFile, logHandler)
Donn sits down with Buffer Android Lead, Joe Birch. Joe is a GDE for Android, Google Actions, Flutter and Google Pay. In this episode Donn and Joe talk about Clean Architecture, what it is, and why you might want to use it.
They break down the concept of what Clean Architecture is in a manner that is easy for even a beginner to understand.
Enjoy.
Get ahold of Joe:
Kaushik decides to hit record on a skype call he has with friend of the show Jesse Wilson. They start off by discussing building features across different platforms today. Jesse talks about a clever mechanism of using javascript to change logic on the fly across the Square cash app, that's worked out pretty well. They then go on to discussing how one can try and converge across platforms in terms of business logic, architecture, naming etc. They then wind it down by discussing the state of Flutter, Kotlin multiplatform and reaching the promised land.
Enjoy.
Instabug completely takes care of your beta testing and user feedback process so you can debug, fix, and improve your app quality faster. They're giving Fragmented listeners a special bonus when you go to instabug.com/fragmented - Signup for free, install the SDK, and you will get Instabug's brand new t-shirt
In this episode, Donn talks about Kotlin Lambda Expressions. He explains the syntax and how to build a couple of simple lambda expressions with and without type inference and declaration. We wrap up with a small example of passing a small lambda with multiple values to a function. See the show notes below for more info. This is part 1 of a multi-part series on Lambda Expressions in Kotlin.
The basic syntax of a lambda expression:
val myLambda : Type = { argumentList -> codeBody }
The codeBody is the only section that is not optional.
Double lambda expression (doubles an integer) with type inference
val double = { number: Int -> number * 2 }
val result = double(4)
// result = 8 now
Double string multi-line lambda with type inference.
val doubleString = { number: Int ->
// codebody
val doubleResult = number * 2
doubleResult.toString()
// Kotlin knows this will return a string
}
Type declaration in a lambda
val myLambda: (String, Int) -> String = { str, int ->
"$str - ${int.toString()}" // "Donn - 32"
}
val result = myLambda("Donn", 32)
// result = "Donn - 32"
Preview of next week โฆ passing a lambda to a function
fun doWork(name: String, favoriteNumber: Int, someLambda: (String, Int) -> String) {
// Do some processing, this is a contrived example
val repeatedString = "$name$name"
val result = someLambda(repeatedString, favoriteNumber)
println(result)
}
// Usage
doWork("Donn", 32) { str, int ->
val someNewValue = "$str is my parameter and so is $int"
someNewValue.length.toString() // this is returned
}
// '37' is printed via println
// Or use it like this, the lambda code body is what can change, this is where the power is at
doWork("Donn", 32) { name, count ->
var result = ""
for(i in 1..count) { result += "$name" }
result // this is returned
}
// loops over and concatinates "Donn" until the favorite number (aka count) is met.
// Output looks like: "DonnDonnDonnDonnDonnDonn..." and so on...
In this episode, you'll learn all about Kotlin Sealed classes. Donn walks you through what they are, how to create them, how to use data classes, objects and regular classes to create a restricted type hierarchy.
In this episode, Donn talks to Matt Runo about the Flank project. Using Flank you can run your Espresso test suite in parallel on Firebase Test Lab (FTL). This allows you to lower your feedback loop time and increase developer productivity and throughput. You'll learn all about Flank, how it works and how to get started in this episode.
In this show, Donn talks with Dan Jarvis about Machine Learning on Android with ML Kit and Tensor flow.
They dive deep into what ML (Machine Learning) is, what you need to know as a developer and how to apply those things to build ML applications on Android.
They tal about what you can do on Android in regards to ML, model training and running the models on the device. You may be wondering if you should include the model in your app or if it should live on a server, that's discused as well and the reasons for it.
They wrap up the show with some examples of what you could build and some great resources to get you started.
Enjoy
With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough.
Why?
Simply because it's going to lower the abandonment rate of your app and increase the engagement of your app at the same time. Donn talks about this in depth in this episode.
Enjoy.
In this show, Donn and Kaushik talk to Cameron Ketcham and Connie Shi from the Android Material Components team at Google.
The Android Material Components are material designed components that you can easily drop into your application with just a few small tweaks. You get a bunch of fully built out material components, from the Android Material team at Google. From Chips, to Cards, to Buttons and much much more ... the goal is to enable you to build your application faster when using these components.
Donn and Kaushik talk to Cameraon and Connie about the components and how to use them in this episode.
Enjoy
This podcast could use a review! Have anything to say about it? Share your thoughts using the button below.
Submit Review