In this event we will walk you through best practices and the practical Implementation of the following topics:
Advantage of Kotlin over Java, Kotlin Coroutines .
What’s new in Android Studio, How to use Motion Layout Editor
NaviGation Architecture component, Vivewmodel, Livedata, Room database, Jetpack Compose,
Material Design Library...etc
App Distribution - Android App bundle over an APK
Jetpack Compose is a Declarative UI toolkit written in 100% Kotlin. What is Declarative UI? Why should we use it? We will talk about data flow and the benefits of Declarative UI. Then we’ll show the way to setup Jetpack Compose, write some basic samples and let it works with the MVVM architecture.
In this event we will walk you through best practices and the practical Implementation of the following topics:
Advantage of Kotlin over Java, Kotlin Coroutines .
What’s new in Android Studio, How to use Motion Layout Editor
NaviGation Architecture component, Vivewmodel, Livedata, Room database, Jetpack Compose,
Material Design Library...etc
App Distribution - Android App bundle over an APK
Jetpack Compose is a Declarative UI toolkit written in 100% Kotlin. What is Declarative UI? Why should we use it? We will talk about data flow and the benefits of Declarative UI. Then we’ll show the way to setup Jetpack Compose, write some basic samples and let it works with the MVVM architecture.
Jetpack Compose - Android’s modern toolkit for building native UIGilang Ramadhan
Jetpack Compose simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
Workshop Apps with ReactNative I:
- What is React Native?
- Native Components
- Asynchronous execution
- Debugging
- Live Reload/Hot reload
- Flexbox and styling
- It’s just a JS framework!
- Native Components
- Native APIs
- Native modules
- Some Thoughts on Production Development
Presentado por ingeniero Jordi Serra
Testing Android apps based on Dagger and RxJava Droidcon UKFabio Collini
Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk you'll learn how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code. In this talk, you will also explore:
how to take advantage of Mockito and other libraries to write good JVM and Espresso tests in both Java and Kotlin
how to use DaggerMock (an open source library available on github to avoid boilerplate code in tests
how to test asynchronous RxJava code using a JVM test
Антон Минашкин
Android разработчик с 5-летним стажем. Сейчас занимает должность Android Developer в GlobalLogic . Выступал на UA Mobile'14 , конференции "IT- ПЕРСПЕКТИВА" , Kyiv Android gathering , Android Dev Club и др . Cоорганизатор сообществ GDG Kremenchuk и IT Kremenchuk .
This presentation explains the benefits of Dagger 2, a Dependency Injections framework. It will be useful for Android developers.
The author of the presentation is Anton Minashkin (Android Developer, GlobalLogic); he delivered it at IT Saturday on June 6, 2015 in Kyiv.
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 13:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2470.html
Паразитизм — форма взаимоотношений между организмами различных видов, из которых один (паразит — aka Angular 4+) использует другого (хозяина — aka React) в качестве среды обитания и источника питания, нанося ему вред, но при этом не убивая.
Паразитоид — организм, который проводит значительную часть своей жизни (в личиночной стадии), проживая на или внутри своего единственного хозяина, которого он постепенно убивает в процессе.
...
One of the major challenges of building rich applications for the web, is that our foundation (JavaScript in the browser) is a document viewer, not an application platform. In fact, if you show a mobile or desktop app developer the primitives we are given to start with, the typical reaction is that we’re missing many important building blocks.
All of the tools we rely on like Angular 2, React, Ember, Polymer, etc... all are, essentially, shims and hacks that we make use of while we wait for things like the W3C Web Component spec to be completed and implemented in browsers. As it becomes more feasible to build on the standards instead of a framework, it becomes important for developers to have awareness of what those standards are, what’s missing from the official spec, and how well of a job our favorite libraries do with establishing alignment.
We’ll take a close look at the W3C component spec, and compare it to the concept of a Component in the React.js library, the and the Ember.js 2 and Angular 2 frameworks. We’ll try to do a few things using native web components, involving rendering and styling an encapsulated piece of interactive UI. Along the way, we will highlight the things that we’re waiting in the W3C spec, which we’d need to land before we can start decoupling our apps from a specific third party tool, and rely on “Native Web Components”
Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn't scale well to a multi module project. Hilt is opinionated about the configuration to use (we don't need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we'll see first an introduction to Hilt and a comparison with Dagger to understand why it's easier to configure. Then we'll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot!
Jetpack Compose - Android’s modern toolkit for building native UIGilang Ramadhan
Jetpack Compose simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.
Workshop Apps with ReactNative I:
- What is React Native?
- Native Components
- Asynchronous execution
- Debugging
- Live Reload/Hot reload
- Flexbox and styling
- It’s just a JS framework!
- Native Components
- Native APIs
- Native modules
- Some Thoughts on Production Development
Presentado por ingeniero Jordi Serra
Testing Android apps based on Dagger and RxJava Droidcon UKFabio Collini
Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk you'll learn how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code. In this talk, you will also explore:
how to take advantage of Mockito and other libraries to write good JVM and Espresso tests in both Java and Kotlin
how to use DaggerMock (an open source library available on github to avoid boilerplate code in tests
how to test asynchronous RxJava code using a JVM test
Антон Минашкин
Android разработчик с 5-летним стажем. Сейчас занимает должность Android Developer в GlobalLogic . Выступал на UA Mobile'14 , конференции "IT- ПЕРСПЕКТИВА" , Kyiv Android gathering , Android Dev Club и др . Cоорганизатор сообществ GDG Kremenchuk и IT Kremenchuk .
This presentation explains the benefits of Dagger 2, a Dependency Injections framework. It will be useful for Android developers.
The author of the presentation is Anton Minashkin (Android Developer, GlobalLogic); he delivered it at IT Saturday on June 6, 2015 in Kyiv.
Паразитируем на React-экосистеме (Angular 4+) / Алексей Охрименко (IPONWEB)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 13:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2470.html
Паразитизм — форма взаимоотношений между организмами различных видов, из которых один (паразит — aka Angular 4+) использует другого (хозяина — aka React) в качестве среды обитания и источника питания, нанося ему вред, но при этом не убивая.
Паразитоид — организм, который проводит значительную часть своей жизни (в личиночной стадии), проживая на или внутри своего единственного хозяина, которого он постепенно убивает в процессе.
...
One of the major challenges of building rich applications for the web, is that our foundation (JavaScript in the browser) is a document viewer, not an application platform. In fact, if you show a mobile or desktop app developer the primitives we are given to start with, the typical reaction is that we’re missing many important building blocks.
All of the tools we rely on like Angular 2, React, Ember, Polymer, etc... all are, essentially, shims and hacks that we make use of while we wait for things like the W3C Web Component spec to be completed and implemented in browsers. As it becomes more feasible to build on the standards instead of a framework, it becomes important for developers to have awareness of what those standards are, what’s missing from the official spec, and how well of a job our favorite libraries do with establishing alignment.
We’ll take a close look at the W3C component spec, and compare it to the concept of a Component in the React.js library, the and the Ember.js 2 and Angular 2 frameworks. We’ll try to do a few things using native web components, involving rendering and styling an encapsulated piece of interactive UI. Along the way, we will highlight the things that we’re waiting in the W3C spec, which we’d need to land before we can start decoupling our apps from a specific third party tool, and rely on “Native Web Components”
Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn't scale well to a multi module project. Hilt is opinionated about the configuration to use (we don't need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we'll see first an introduction to Hilt and a comparison with Dagger to understand why it's easier to configure. Then we'll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot!
Saindo da zona de conforto… resolvi aprender androidDaniel Baccin
Palestra sobre Android realizada na Secomp - UECE. A ideia dessa palestra é motivar estudantes, profissionais e “devs”, em geral, a conhecer um pouco mais sobre o desenvolvimento de aplicativos na plataforma Android. Além disso, será discutido sobre os desafios enfrentados durante o aprendizado, oportunidades existentes no mercado, perspectivas futuras sobre a plataforma e experiências já adquiridas na área. Também, será abordando conceitos básicos e intermediários através de exemplos práticos, ferramentas utilizadas e dicas de boas práticas para o desenvolvimento.
After you’ve done all the UI optimizations recommended by UX designers, how do you make your interface even more engaging? That’s where the Samsung Mobile SDK can help. Part 1 of Advancing Your UI introduces you to three new technologies -- Look, Motion, and Gesture – that allow you to create an interface that engages your audience in ways you have not yet explored.
The Content helps those who wish to program mobile applications using android platform. The content has been used to conduct mobile application boot camps using android platform on different regions in Tanzania
React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about — learn once, write anywhere.
Minicurso sobre desenvolvimento de aplicações com android. Passo a passo do desenvolvimento de uma App de TODO. Utilizando Android Studio. CRUD + Banco de dados (SQLite)
De idealista à empreendedor - como desenvolver aplicações em android que conq...Ramon Ribeiro Rabello
Lightining Talk apresentada durante o VII Computação Amostra ( http://www.acet.cesupa.br/compamostra/ ), realizado no CESUPA, dias 03 e 04 de Outubro de 2012.
Palestra apresentada durante o VII Fórum Paraense de Software Livre, no dia 12/12/2011, sobre boas práticas em desenvolvimento de aplicações móveis em Android.
2. Hi, I’m Ramon Rabello | Bio
10 years in Android
GDG Floripa Organizer
Keen to Communities
Star Wars fan, I am!
Master Software Engineer |
about.me/ramonrabello
A keep-learner
3. We’re hiring | ArcTouch Brasil (Florianópolis Office)
arctouch.com/brjobs
18. Android Dev 3rd Gen | MVP pattern matured in Android
interface AddNoteContract {
interface View {
fun updateNotesList()
fun showLoading()
fun hideLoading()
}
interface Presenter {
fun addNote(note: Note)
}
}
19. Android Dev 3rd Gen | Kotlin as a primary language for Android
data class Person(val name : String, val age: Int)
fun View.show() { visibility = View.VISIBLE }
fun View.gone() { visibility = View.GONE }
peopleRecyclerView.show()
loadingProgressBar.gone()
fun loadList(onSuccess:() -> Unit, onError:() -> Unit)
presenter.loadList(
onSuccess = { … },
onError = { … }
)
data classes
extension
functions
lambdas
high-order functions
20. Android Dev 3rd Gen | RxJava + MVVM = reactive apps
class NoteListViewModel {
fun getNoteList(): Subscription {
return repository.getNoteList()
}
}
class NoteListActivity: AppCompatActivity() {
private val viewModel = AddNoteViewModel()
private val compositeSubscription = CompositeSubscription()
private fun subscribeToNoteListChanges(): Subscription {
return viewModel.getNoteList()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(adapter::updateList, this::handleError)
}
override fun onResume() {
super.onResume()
compositeSubscription.add(subscribeToNoteListChanges())
}
override fun onPause() {
compositeSubscription.clear()
super.onPause()
}
}
23. Android Jetpack | Overview
Simplify complex tasks
A collection of Android software components
Follow best practices
Free you from writing boilerplate code
Comprises the androidx.* packages
31. androidx | Migrating to androidx
Manually
Automagically
Add both androidX=true and enableJetfier=true to
gradle.properties file
In Android Studio 3.2.1: Refactor -> Migrate to AndroidX…