IT

 

 

 

 

 

 

 






 







 


 

 

 

 

 

 

 

 






 







 


 

 

 

 

 

 

 






 







 


 

 

 

 

 

 

 






 







 


 

 

 

 

 

 

 

 

 

 

 

 

 

 






 







 


 

 

 

 

 

 

 

 

 

 






 







 


IT

 

 

AI  

 

 






 







 


 

 

 

 

 

 

 






 







 


 

 

 

 

 

 

 

 






 







 


 

Web  

 

 

PlayStation  

 

YouTuber  

 





 

 





 

 

 












Android, Bluetooth and BLE the modern way: a complete guide  

3users  
proandroiddev.com  


Bluetooth is an immensely fun technology to work with. Once you learn how to search for and communicate with devices, you will be surprised by how many of them there are out there and how much data you can get. And of course Android is a brilliant platform for working with it. But, my goodness, is it a hard master to work with! I genuinely have never worked with an Android technology so full of c



 

2024/01/14 23:44
 



 

















ViewModel: Events as State are an Antipattern  

3users  
proandroiddev.com  


I feel like I need to discuss this, so I decided to write an article on a hot topic in the Kotlin dev community about one-off events antipatterns. So the story begins with this article by Manuel Vivo ViewModel: One-off event antipatterns I recommend that you read the article and especially the comments to understand the situation fully, but Ill summarize the article: Manuel Vivo argues that one-o



 

2023/11/23 09:11
 





 











Splash Screen in Android  

3users  
proandroiddev.com  


Image by justinmindSplash screen is a screen that loads when you launch an app. When you first open your application, a loading screen, also known as a launch screen or startup screen, appears. Youll be brought to a more useful screen where you can perform activities after the loading is complete. Splash screens only appear briefly on your screen; if you turn your head away, you can miss them. Ty



 

2022/10/09 21:57
 



 











Sending View Model Events to the UI  

5users  
proandroiddev.com  


Much has happened since both our articles were published. Jetpack Compose has come roaring on to the scene with its dramatically different take on UI. With it has come some very opinionated guidance from Google on the different communication patterns that an app should adopt and the way that data flows between the UI and the view model. This article is going to focus on Googles new guidance with



 

2021/12/24 10:28
 





 











Structural and navigation anti-patterns in modularized Android applications  

4users  
proandroiddev.com  


Merry Christmas to all! The subject of this article is one that has been on my mind for a very long time. After all, Clean Architecture is often seen as the end goal, the hallmark of the finest of Android application code structure  it is the best of the very best. The name itself, Clean Architecture, signals that its a good thing ~ after all, who wants to work with messy code in compariso



 

2021/01/05 17:58
 





 











Substituting Android's LiveData: StateFlow or SharedFlow?  

4users  
proandroiddev.com  


Kotlin Coroutines recently introduced two Flow types, SharedFlow and StateFlow, and Androids community started wondering about the possibilities and implications of substituting LiveData with one of those new types, or both. The two main reasons for that are: LiveData is closely bound to UI (no natural way to offload work to worker threads), andLiveData is closely bound to the Android platform.We



 

2020/12/04 21:10
 



 











Stop using Gradle buildSrc. Use composite builds instead  

5users  
proandroiddev.com  


Pic by Tania MT with What is buildSrcbuildSrc is a directory at the Gradle project root, which can contain our build logic. This allows us to use the Kotlin DSL to write our custom build code with very little configuration and share this logic across the whole project. This has become very popular in recent years and it is a common practice to define project-specific tasks or storing dependencies



 

2020/05/27 22:11
 







 











No more LiveData in Your Repository: There are better options.

3users  
proandroiddev.com  


Three years ago at a Google I/O that every Android developer remembers, Google announced Android Architecture Components and we were all excited about it. ACC has definitely changed the way we build Android Applications. ViewModel and LiveData have both taken an important place in our day-to-day app design. LiveData is the main topic of this post. Dont get me wrong LiveData is a very powerful and



 

2020/05/04 10:52
 



 











A Dependency Injection Showdown

4users  
proandroiddev.com  


Choosing a dependency framework for your Android app is a big decision, its not something that you can easily replace later on. Dependency injection spans all layers of your app so its important that the DI framework that you choose meets all your requirements and that includes testing. I am going to compare 4 popular frameworks: Dagger, Koin, Kodein, and Toothpick. Its interesting that all of



 

2020/02/20 19:10
 







 











Kotlin: Fun with in  

5users  
proandroiddev.com  


Im a big fan of determinism. Its part of why I love Kotlin as a programming language. I like pushing problems to the compiler. I like using types for expressiveness and safety. And I really like sealed classes for representing state. One of the tools in Kotlin that allows us to achieve greater determinism is the languages when expression. Most programmers working in Kotlin are pretty familiar w



 

2020/02/19 20:09
 









 











The power of types for errors  

3users  
proandroiddev.com  


(This is a cross-post from SoundClouds developer blog) At KotlinConf19 I talked about the power of types. In essence, I discussed limiting the number of primitives we use in our code in favor of using custom types instead. In this way, we as developers will not only reduce the possibility of bugs by using the compiler, but we will also achieve more readable and self-documented types. Today I ran



 

2020/01/30 23:04
 













Decoding Handler and Looper in Android  

4users  
proandroiddev.com  


SourceIntroductionHandler and Looper are one of the main low-level Android OS things, which almost nobody uses directly (at least nowadays). But they are at the core, so many other high-level solutions are based on them. Therefore one should know what Handler and Looper are, what and how they are doing. In this article well try to understand Handler and Looper in Android. What, how and why we mig



 

2019/12/25 08:29
 



 











Why you need use-cases/interactors  

4users  
proandroiddev.com  


Since Clean Architecture became the new hot topic in the Android world there have been loads of code samples and articles that tried to explain how it works and which are its benefits. However, I always hear these questions from developers that try to apply it: What are these Use Cases/interactors supposed to do? Why cant I call directly the repository from the Presenter/ViewModel? Why should I h



 

2019/11/02 14:33
 













Coil vs Picasso vs Glide: Get Ready Go!  

5users  
proandroiddev.com  


A Pixel 3 was the device used to test it. All images are visible at the same time, so these are requested almost at the same time and therefore, will be loaded almost in parallel. Two kinds of tests have been done: The time it takes to load every single image. In order to have more accurate data, images are being downloaded ten times, so the average will be taken into account.The time it takes to



 

2019/09/17 16:45
 







 











The Real Repository Pattern in Android  

5users  
proandroiddev.com  


Repository PatternOver the years Ive seen many implementations of the repository pattern, yet I think most of them are wrong and not beneficial. These 5 are the most common mistakes Ive seen (some of these are also in the official android documentation): The Repository returns a DTO instead of a Domain Model.DataSources (ApiServices, Daos..) use the same DTO.There is a Repository per set of endp



 

2019/09/09 23:55
 





 











A Story about FFmpeg on Android. Part I: Compilation.  

16users  
proandroiddev.com  


Lets define a task firstImagine we have to make an app that shows basic info about a video file: container and video codec info and a frame size. Also we would like to actually display a frame from the video. We could show info about audio and subtitles too, but lets keep focus on video only. How can we solve it with FFmpeg? We have two options: Use already existed Java library that wraps prebui



 

2019/08/13 23:04
 









 











The Mystery of Mutable Kotlin Collections  

3users  
proandroiddev.com  


This post is a little more low-level than my recent posts about Kotlin Pearls, so brace yourself to a tour on the inner workings of Kotlin. Part I  the surpriseIt started with a (mostly) harmless piece of code. I wanted to show why it is not right to assume that List in Kotlin is immutable. The reason is that MutableList inherits from List: public interface MutableList<E> : List<E>, MutableCollec



 

2019/07/08 12:57
 













An Early look at Kotlin Coroutines Flow  

4users  
proandroiddev.com  


Starting from version 1.2.0-alpha-2 of coroutines, the library will be adding a new type called Flow which is an abstraction for a cold stream. To understand what this means and why it is needed, it is pertinent to get the difference between a hot stream vs a cold stream. What is a cold streamCurrently, a stream of items can be transferred using a Channel<T>. For example using the produce coroutin



 

2019/04/17 20:41
 













How to Flare a Flutter app? Part 1 - Create Animation  

3users  
proandroiddev.com  


Whats is Flare? Flare is an online tool helps you to design and animate Vector Graphics, for Apps, Games, and Web, Flare by 2dimensions.com Its not easy to get a rich animation on mobile, if you know Lottie and the Bodymovin plugin for After Effects, you can get rich and beautiful animation, but in my opinion, its better to use a complete solution supported by one company than using a tool like



 

2019/04/17 13:41
 



 











Clean Architecture Guide (with tested examples): Data Flow != Dependency Rule  

4users  
proandroiddev.com  


Difference between Data Flow & Dependency RuleHello everyone! 👋 In this story I want to explain Clean Architecture (with tested examples) & talk about the most common mistake when adopting it (the difference between Data Flow and Dependency Rule). This story is the follow up after my latest medium Intro to App Architecture. Make sure to check it out if you are interested in what makes a good Arch



 

2019/03/19 09:16
 













How Kotlin helps you avoid memory leaks  

3users  
proandroiddev.com  


Last week I gave a talk at MobOS about writing and automating performance tests in Android. As part of the talk I wanted to demonstrate how you could detect memory leaks during your integration tests. To prove that, I created an Activity using Kotlin that was supposed to leak memory but for some reason it didnt. Was Kotlin helping me out without me knowing it? Before I begin, the code of this art



 

2019/02/24 23:46
 



 











A new tool for VQA on Android - ProAndroidDev  

6users  
proandroiddev.com  


Over the past few months Ive been working on the initial release of a new tool, Window. This app overlays rulers and grids on screen, along with info on placement of views within your view hierarchy. The goal of this project is to reduce the time it takes to VQA. VQA? Visual Quality Assurance a.k.a. Pixel Pushing a.k.a. Pulling your hair out for that 1 pixel 😵. The VQA process is slowBefore the



 

2019/01/31 00:26
 





 











How to make sense of Kotlin coroutines  ProAndroidDev  

3users  
proandroiddev.com  


Coroutines are a great way to write asynchronous code that is perfectly readable and maintainable. Kotlin provides the building block of asynchronous programming with a single language construct: the suspend keyword, along with a bunch of library functions that make it shine. In this post, Ill try to explain in simple words the basics of coroutines and suspending functions. In order to keep it sh



 

2018/12/14 09:05
 





 











Kotlin Coroutines patterns & anti-patterns  

8users  
proandroiddev.com  


Table of ContentsIntroWrap async calls with coroutineScope or use SupervisorJob to handle exceptionsPrefer the Main dispatcher for root coroutineAvoid usage of unnecessary async/awaitAvoid cancelling scope jobAvoid writing suspend function with an implicit dispatcherAvoid usage of global scopeIntroDecided to write about several things which in my opinion you should and shouldnt do (or at least tr



 

2018/12/03 23:08
 





 











5 common mistakes when using Architecture Components  

6users  
proandroiddev.com  


Lunch Atop a Skyscraper by BalakovSubtle oversights with more or less serious consequences - even if youre not making these mistakes it should be worth keeping them in mind to avoid running into some problems in future. This article covers: Leaking LiveData observers in FragmentsReloading data after every rotationLeaking ViewModelsExposing LiveData as mutable to ViewsCreating ViewModels dependen



 

2018/11/12 13:06
 



 











Demystifying CoroutineContext  ProAndroidDev  

3users  
proandroiddev.com  


silhouette of trees covered by fogs by Clément M. on UnsplashAt the heart of Kotlin coroutines is the CoroutineContext interface. All the coroutine builder functions like launch and async have the same first parameter, context: CoroutineContext. These coroutine builders are also all defined as extension functions on the CoroutineScope interface, which has a single abstract read-only property, co



 

2018/11/04 18:21
 



 











Android Studio Pro-Tips for working with Gradle  ProAndroidDev  

4users  
proandroiddev.com  


Disclaimer: this is not yet-another-article about build performance. If thats what you were looking for, go to https://guides.gradle.org/performance/ and https://developer.android.com/studio/build/optimize-your-build Here are some tips I have found useful when working with Gradle in Android Studio. Run unit tests before launching the appSo you made the effort to write unit tests? Good. How useful



 

2018/10/15 16:13
 





 











Unidirectional Data Flow using Coroutines  

3users  
proandroiddev.com  


Over the years the typical architecture of an Android application has changed a lot, from the first apps where all the logic was in the Activity a lot of different patterns have emerged. Right now MVP and MVVM are probably the most common architectural patterns for the UI (often together with something based on the clean architecture) but there are a lot of alternatives. For example, many develope



 

2018/10/08 11:51
 













Android Navigation Component Tips & TricksImplementing Splash screen  

4users  
proandroiddev.com  


Google has recently announced various android libraries to introduce some best practices in the world of android during I/O 2018. One of them is the Navigation Architecture Component. well not be covering the basics of this component as its already available in developer docs and this Codelab. Be sure to read them before going further! When Google announced this component, I jumped straight into



 

2018/09/24 21:32
 



 








 




























 

ProAndroidDev  

 



j

k

l

e

o
 
 
















 









 

















 









 









 







Pro



 




 






App Storeからダウンロード
Google Playで手に入れよう


Copyright © 2005-2024 Hatena. All Rights Reserved.
 





x