The document discusses the author's experience creating an Android app using Kotlin. It begins with introductions and then describes how to set up Kotlin for Android development. The author then shows code examples from an app that makes the device sleep when tapped. A comparison is made between the Kotlin and Java versions of the code, noting that the Kotlin code is more concise. In summary, the author finds that Kotlin reduces the amount of coding needed compared to Java.
How To Dependency Inject a Kitten: An Introduction to Dagger 2Todd Burgess
An introduction to using the Dagger 2 dependency injection framework for Android applications. Brief explanation of dependency injection and a example of how to implement Dagger 2. Includes a real world example of Dagger 2
How To Dependency Inject a Kitten: An Introduction to Dagger 2Todd Burgess
An introduction to using the Dagger 2 dependency injection framework for Android applications. Brief explanation of dependency injection and a example of how to implement Dagger 2. Includes a real world example of Dagger 2
Here are slides from basic training for Gradle.
This training is aimed to help Java Developers to get hands-on experience to use Gradle as a primary build tool for Java source code starting from simple compilation continuing with different kinds of tests and finishing with code quality analysis and artefacts publishing.
>>> View this presentation online at http://github-service-universe.kimminich.de/ <<<
PDF version of the slide deck for my JavaLand 2015 talk "All-round careful Software Development with GitHub Services"
Tools for unit testing, building applications, analyzing software quality and planning release scopes are an essential aspect of modern software development. With GitHub and "pluggable" external services there are lots of options to move these aspects into "the Cloud". For open source projects this is a viable alternative to on-premise solutions. In this talk I will present and demonstrate the CI lifecycle of some of my recent projects hosted on GitHub where I tried to integrate modern tools (e.g. Gradle, npm, bower) and external services (e.g. Travis-CI, Code Climate, Coveralls, HuBoard, AmazonSNS, NMA). The benefits and limitations of those services will be honestly illuminated. I am not affiliated with any of the providers mentioned, so this talk will not end up as a marketing show! Instead, the audience is supposed go out of this talk with some new things to try out with their own GitHub projects while hopefully being able to avoid some of the ramp-up difficulties.
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Andrew Phillips
Slides from the presentation "From GitOps to an adaptable CI/CD Pattern for Kubernetes" at the Continuous Delivery NYC meetup, by Andrew Phillips. See https://www.meetup.com/ContinuousDeliveryNYC/events/255366708/ and https://www.youtube.com/watch?v=SYeZ0uIwbLc
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...ZeroTurnaround
For you lazy coders out there, we offer the visual aids for the first 3 chapters of "Java Build Tools: Part 2 - A Decision Maker's Comparison of Maven, Gradle and Ant + Ivy". Here you can find the raw scores given to each tool based on 6 feature categories. **Download the full report to see Chapter 4, mapping the features against different user profiles**
Gerrit at Eclipse Foundation have really long history. Initially only EGit and JGit projects could use this tool, but starting from February 2012 Gerrit become fist class citizen in Eclipse ecosystem. Every Eclipse Foundation's project can immediately start using its powerful code review capabilities. Capabilities that together with TDD and CI create safety net against bugs for software development.
For quite long time Gerrit features set was pretty closed and adding new functionality required upstream code base changes. That means either you ended up in port and rebase nightmare or contributed your changes back to community... where they could not have been accepted because they solve your domain's problem not something that is vital for the community edition.
Plugin support in Gerrit was initially introduced in version 2.5. Since then amount of available extension points substantially increased. In this presentation we will understand Gerrit plugins architecture. We will discuss extensions and plugins especially differences between them and which one to choose when. We will see how to combine everything together (including WEB UI) to get your first full blown Gerrit plugin.
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
A brief dissertation about using GitOps paradigm to operate an application on multiple Kubernetes environments thanks to GitHub, ArgoCD and Kustomize. A talk about this matters has been taken at the event #CloudConf2020
Stefan is currently working on a new exciting project, GitOps Toolkit (https://github.com/fluxcd/toolkit), which is an experimental toolkit for assembling CD pipelines the GitOps way
Slides of the university I gave at Devoxx Belgium with Antonio Goncalves on CDI, Java EE and JBoss Forge.
Abstract:
-------
During this 3 hours university, you will learn some CDI basis, and will quickly dive into more advance CDI features (such as extension). Using JBoss Forge we will quickly generate a Java EE 7 web application, and then, following business requirements, we will add CDI functionalities.
This university talk will be a mixture of code and slides, focusing on CDI and Java EE 7.
--------
Video of the university is available on YouTube: http://youtu.be/LYKMaj4XKvg
Code and Slides on GitHub: https://github.com/antoinesd/cdi-forge-uni/tree/DevoxxBe2015
Nowadays, Gradle is undoubtedly The Build Tool in Android development, and a very powerful one. In addition to that, Gradle keeps evolving fast, each new release bringing new features and performance optimizations. However, many of us are using just basic Gradle config and waiting patiently for minutes until our builds run. Can we do better? In this session, we’re going to discuss tips & tricks on getting the most of your Gradle builds and improving your productivity!
These slides highlight what’s new in Grails® framework 5, Micronaut Integration, Groovy 3, and the current developments around Grails framework.
It is originally presented at Madrid GUG on 15 December, 2021.
original (better quality) on https://docs.google.com/presentation/d/1bnwj8CrFGo5KekONYSeIHySdkoXZiewJxkHcZjXnzkQ/
slides from OpenDaylight Summit Oct 2016 Seattle
Building android apps with MVP, Dagger, Retrofit, Gson, JSON, Kotlin Data Cl...Hammad Tariq
Architect android apps with MVP, Dagger, Retrofit, Gson, JSON, Kotlin Data Classes and RecyclerView using Kotlin.
How to Convert JSON to Kotlin Data Classes.
Kotlin Retrofit Example with RecyclerView.
MVP Android using Kotlin project structure.
Kotlin Android Dagger2 Tutorial.
How to use GSON serialization for JSON response in Kotlin.
Find More on:
http://developine.com/building-android-mvp-app-in-kotlin-using-dagger-retrofit/
And
http://developine.com/
Level Up Your Android Build -Droidcon Berlin 2015Friedger Müffke
A journey of a young entrepreneur through the Android Gradle build system. It explains the groovy and gradle details that are need during the development process of an Android app.
On stage with Volker Leck
Here are slides from basic training for Gradle.
This training is aimed to help Java Developers to get hands-on experience to use Gradle as a primary build tool for Java source code starting from simple compilation continuing with different kinds of tests and finishing with code quality analysis and artefacts publishing.
>>> View this presentation online at http://github-service-universe.kimminich.de/ <<<
PDF version of the slide deck for my JavaLand 2015 talk "All-round careful Software Development with GitHub Services"
Tools for unit testing, building applications, analyzing software quality and planning release scopes are an essential aspect of modern software development. With GitHub and "pluggable" external services there are lots of options to move these aspects into "the Cloud". For open source projects this is a viable alternative to on-premise solutions. In this talk I will present and demonstrate the CI lifecycle of some of my recent projects hosted on GitHub where I tried to integrate modern tools (e.g. Gradle, npm, bower) and external services (e.g. Travis-CI, Code Climate, Coveralls, HuBoard, AmazonSNS, NMA). The benefits and limitations of those services will be honestly illuminated. I am not affiliated with any of the providers mentioned, so this talk will not end up as a marketing show! Instead, the audience is supposed go out of this talk with some new things to try out with their own GitHub projects while hopefully being able to avoid some of the ramp-up difficulties.
Continuous Delivery NYC: From GitOps to an adaptable CI/CD Pattern for Kubern...Andrew Phillips
Slides from the presentation "From GitOps to an adaptable CI/CD Pattern for Kubernetes" at the Continuous Delivery NYC meetup, by Andrew Phillips. See https://www.meetup.com/ContinuousDeliveryNYC/events/255366708/ and https://www.youtube.com/watch?v=SYeZ0uIwbLc
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...ZeroTurnaround
For you lazy coders out there, we offer the visual aids for the first 3 chapters of "Java Build Tools: Part 2 - A Decision Maker's Comparison of Maven, Gradle and Ant + Ivy". Here you can find the raw scores given to each tool based on 6 feature categories. **Download the full report to see Chapter 4, mapping the features against different user profiles**
Gerrit at Eclipse Foundation have really long history. Initially only EGit and JGit projects could use this tool, but starting from February 2012 Gerrit become fist class citizen in Eclipse ecosystem. Every Eclipse Foundation's project can immediately start using its powerful code review capabilities. Capabilities that together with TDD and CI create safety net against bugs for software development.
For quite long time Gerrit features set was pretty closed and adding new functionality required upstream code base changes. That means either you ended up in port and rebase nightmare or contributed your changes back to community... where they could not have been accepted because they solve your domain's problem not something that is vital for the community edition.
Plugin support in Gerrit was initially introduced in version 2.5. Since then amount of available extension points substantially increased. In this presentation we will understand Gerrit plugins architecture. We will discuss extensions and plugins especially differences between them and which one to choose when. We will see how to combine everything together (including WEB UI) to get your first full blown Gerrit plugin.
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
A brief dissertation about using GitOps paradigm to operate an application on multiple Kubernetes environments thanks to GitHub, ArgoCD and Kustomize. A talk about this matters has been taken at the event #CloudConf2020
Stefan is currently working on a new exciting project, GitOps Toolkit (https://github.com/fluxcd/toolkit), which is an experimental toolkit for assembling CD pipelines the GitOps way
Slides of the university I gave at Devoxx Belgium with Antonio Goncalves on CDI, Java EE and JBoss Forge.
Abstract:
-------
During this 3 hours university, you will learn some CDI basis, and will quickly dive into more advance CDI features (such as extension). Using JBoss Forge we will quickly generate a Java EE 7 web application, and then, following business requirements, we will add CDI functionalities.
This university talk will be a mixture of code and slides, focusing on CDI and Java EE 7.
--------
Video of the university is available on YouTube: http://youtu.be/LYKMaj4XKvg
Code and Slides on GitHub: https://github.com/antoinesd/cdi-forge-uni/tree/DevoxxBe2015
Nowadays, Gradle is undoubtedly The Build Tool in Android development, and a very powerful one. In addition to that, Gradle keeps evolving fast, each new release bringing new features and performance optimizations. However, many of us are using just basic Gradle config and waiting patiently for minutes until our builds run. Can we do better? In this session, we’re going to discuss tips & tricks on getting the most of your Gradle builds and improving your productivity!
These slides highlight what’s new in Grails® framework 5, Micronaut Integration, Groovy 3, and the current developments around Grails framework.
It is originally presented at Madrid GUG on 15 December, 2021.
original (better quality) on https://docs.google.com/presentation/d/1bnwj8CrFGo5KekONYSeIHySdkoXZiewJxkHcZjXnzkQ/
slides from OpenDaylight Summit Oct 2016 Seattle
Building android apps with MVP, Dagger, Retrofit, Gson, JSON, Kotlin Data Cl...Hammad Tariq
Architect android apps with MVP, Dagger, Retrofit, Gson, JSON, Kotlin Data Classes and RecyclerView using Kotlin.
How to Convert JSON to Kotlin Data Classes.
Kotlin Retrofit Example with RecyclerView.
MVP Android using Kotlin project structure.
Kotlin Android Dagger2 Tutorial.
How to use GSON serialization for JSON response in Kotlin.
Find More on:
http://developine.com/building-android-mvp-app-in-kotlin-using-dagger-retrofit/
And
http://developine.com/
Level Up Your Android Build -Droidcon Berlin 2015Friedger Müffke
A journey of a young entrepreneur through the Android Gradle build system. It explains the groovy and gradle details that are need during the development process of an Android app.
On stage with Volker Leck
Mastering the NDK with Android Studio 2.0 and the gradle-experimental pluginXavier Hallade
Android Studio is finally fully supporting the NDK so you can easily integrate C/C++ inside Android applications.
While this support is still experimental, it’s promising and worth already doing the final jump from other IDEs and build systems.
After a short introduction on what is the NDK, learn how to use it from Android Studio while avoiding several classic pitfalls.
If you want to start a good career in Android Development, this presentation gives you a basic introduction about Android, and how you can develop your very first Android Application.
Comment développer une application mobile en 8 semaines - Meetup PAUG 24-01-2023Nicolas HAAN
À l'automne dernier, nous avons eu la chance de développer une nouvelle app pour un de nos clients en partant de zéro.
L'objectif ? Créer une application minimale à mettre entre les mains de dizaines de beta testeurs, en 8 semaines et avec 2 développeurs. Partant d'une feuille blanche, nous avons pu mettre en œuvre les dernières avancées de la stack Android sans être contraints par l'existant.
Développeurs débutants comme expérimentés, vous repartirez de ce talk avec nos apprentissages clés sur l'architecture ainsi que sur les bibliothèques et astuces pour faciliter la maintenance et la stabilité de l'application. En bonus, nous répondrons à la question : "Une app full-compose, est-ce que c'est cool ?"
Workshop Apps with ReactNative III:
- React Native short Recap
- The Native Side
- Building Native Modules (iOS & Android)
- Building Native Components (iOS & Android)
Presentado por ingenieros Alberto Irurueta y Enrique Oriol
Доклад Антона Минашкина для Съесть собаку #15, 27/11/18
Тезисы:
- Почему DI – такой популярный design pattern в Android;
- Что особенного в DI для Kotlin;
- Практическая польза и опции DI.
Early on the way go to nearby browsing center and then time and work on the way go to the number of misses 3 and then time and work on the way go to the number of misses 333 and then time and work
In this presentation, I covered how I've migrated Android project from old Jenkins (Freestyle jobs, 1st Jenkins instance) to new Jenkins (Multibranch pipeline, 2nd Jenkins instance).
Also, it covers a Jenkins Shared Library usage and integration tests on pipeline code.
At the end, I'm covering pros/cons of final result and what difficulties I faced during migration.
Integration testing is hard, and often teams are tempted to do it in production. Testcontainers allows writing meaningful integration tests spawning Docker containers for databases, queue systems, kv-store, other services. The talk, a blend of slides and live code, will show how we are able to deploy without fear while integrating with a dozen of different datastores. Don't mock your database with fake data anymore, work with real data
Implicitly or explicitly all competing businesses employ a strategy to select a mix
of marketing resources. Formulating such competitive strategies fundamentally
involves recognizing relationships between elements of the marketing mix (e.g.,
price and product quality), as well as assessing competitive and market conditions
(i.e., industry structure in the language of economics).
An introduction to the cryptocurrency investment platform Binance Savings.Any kyc Account
Learn how to use Binance Savings to expand your bitcoin holdings. Discover how to maximize your earnings on one of the most reliable cryptocurrency exchange platforms, as well as how to earn interest on your cryptocurrency holdings and the various savings choices available.
Improving profitability for small businessBen Wann
In this comprehensive presentation, we will explore strategies and practical tips for enhancing profitability in small businesses. Tailored to meet the unique challenges faced by small enterprises, this session covers various aspects that directly impact the bottom line. Attendees will learn how to optimize operational efficiency, manage expenses, and increase revenue through innovative marketing and customer engagement techniques.
LA HUG - Video Testimonials with Chynna Morgan - June 2024Lital Barkan
Have you ever heard that user-generated content or video testimonials can take your brand to the next level? We will explore how you can effectively use video testimonials to leverage and boost your sales, content strategy, and increase your CRM data.🤯
We will dig deeper into:
1. How to capture video testimonials that convert from your audience 🎥
2. How to leverage your testimonials to boost your sales 💲
3. How you can capture more CRM data to understand your audience better through video testimonials. 📊
Company Valuation webinar series - Tuesday, 4 June 2024FelixPerez547899
This session provided an update as to the latest valuation data in the UK and then delved into a discussion on the upcoming election and the impacts on valuation. We finished, as always with a Q&A
Cracking the Workplace Discipline Code Main.pptxWorkforce Group
Cultivating and maintaining discipline within teams is a critical differentiator for successful organisations.
Forward-thinking leaders and business managers understand the impact that discipline has on organisational success. A disciplined workforce operates with clarity, focus, and a shared understanding of expectations, ultimately driving better results, optimising productivity, and facilitating seamless collaboration.
Although discipline is not a one-size-fits-all approach, it can help create a work environment that encourages personal growth and accountability rather than solely relying on punitive measures.
In this deck, you will learn the significance of workplace discipline for organisational success. You’ll also learn
• Four (4) workplace discipline methods you should consider
• The best and most practical approach to implementing workplace discipline.
• Three (3) key tips to maintain a disciplined workplace.
Premium MEAN Stack Development Solutions for Modern BusinessesSynapseIndia
Stay ahead of the curve with our premium MEAN Stack Development Solutions. Our expert developers utilize MongoDB, Express.js, AngularJS, and Node.js to create modern and responsive web applications. Trust us for cutting-edge solutions that drive your business growth and success.
Know more: https://www.synapseindia.com/technology/mean-stack-development-company.html
Buy Verified PayPal Account | Buy Google 5 Star Reviewsusawebmarket
Buy Verified PayPal Account
Looking to buy verified PayPal accounts? Discover 7 expert tips for safely purchasing a verified PayPal account in 2024. Ensure security and reliability for your transactions.
PayPal Services Features-
🟢 Email Access
🟢 Bank Added
🟢 Card Verified
🟢 Full SSN Provided
🟢 Phone Number Access
🟢 Driving License Copy
🟢 Fasted Delivery
Client Satisfaction is Our First priority. Our services is very appropriate to buy. We assume that the first-rate way to purchase our offerings is to order on the website. If you have any worry in our cooperation usually You can order us on Skype or Telegram.
24/7 Hours Reply/Please Contact
usawebmarketEmail: support@usawebmarket.com
Skype: usawebmarket
Telegram: @usawebmarket
WhatsApp: +1(218) 203-5951
USA WEB MARKET is the Best Verified PayPal, Payoneer, Cash App, Skrill, Neteller, Stripe Account and SEO, SMM Service provider.100%Satisfection granted.100% replacement Granted.
Personal Brand Statement:
As an Army veteran dedicated to lifelong learning, I bring a disciplined, strategic mindset to my pursuits. I am constantly expanding my knowledge to innovate and lead effectively. My journey is driven by a commitment to excellence, and to make a meaningful impact in the world.
Putting the SPARK into Virtual Training.pptxCynthia Clay
This 60-minute webinar, sponsored by Adobe, was delivered for the Training Mag Network. It explored the five elements of SPARK: Storytelling, Purpose, Action, Relationships, and Kudos. Knowing how to tell a well-structured story is key to building long-term memory. Stating a clear purpose that doesn't take away from the discovery learning process is critical. Ensuring that people move from theory to practical application is imperative. Creating strong social learning is the key to commitment and engagement. Validating and affirming participants' comments is the way to create a positive learning environment.
19. MainActivity.kt
val mSelf = this
protected override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
setUpView()
}
var mDevicePolicyManager: DevicePolicyManager? = null
private fun setUpView() {
findViewById(R.id.device_admin)?.setOnClickListener(OnClickDeviceAdmin())
findViewById(R.id.btn_create_shortcut)?.setOnClickListener(OnClickCreateShortcut())
findViewById(R.id.btn_display_notification)?.setOnClickListener(OnClickDisplayNotification())
findViewById(R.id.btn_hide_notification)?.setOnClickListener(OnClickHideNotification())
findViewById(R.id.btn_sleep)?.setOnClickListener(OnClickSleep())
findViewById(R.id.btn_uninstall)?.setOnClickListener(OnClickUninstall())
}
19
20. MainActivity.java
private class OnClickDeviceAdmin implements OnClickListener {
@Override
public void onClick(View v) {
final Switch s = (Switch) v;
if (s.isChecked()) {
activateDeviceAdmin();
} else {
mDevicePolicyManager.removeActiveAdmin(new AdminReceiver().getWho(mSelf));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
updateView();
}
}, 250);
}
}
private void activateDeviceAdmin() {
final Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
final ComponentName name = new AdminReceiver().getWho(mSelf);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, name);
startActivity(intent);
}
}
20
21. MainActivity.kt
inner class OnClickDeviceAdmin(): OnClickListener {
public override fun onClick(v: View?) {
val s = v as Switch
if (s.isChecked()) {
activateDeviceAdmin()
} else {
mDevicePolicyManager?.removeActiveAdmin(AdminReceiver().getWho(mSelf))
Handler().postDelayed(Runnable {
updateView()
}, 250)
}
}
private fun activateDeviceAdmin() {
val intent = Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
val name = AdminReceiver().getWho(mSelf)
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, name)
startActivity(intent)
}
}
21
30. PhoneSleepActivity.class(Kotlin)
protected void onResume()
{
super.onResume();
String s = Context.DEVICE_POLICY_SERVICE;
Intrinsics.checkFieldIsNotNull(s, "Context", "DEVICE_POLICY_SERVICE");
Object obj = getSystemService(s);
if(obj == null)
throw new TypeCastException("jet.Any? cannot be cast to android.app.admin.DevicePolicyManager");
DevicePolicyManager devicepolicymanager = (DevicePolicyManager)obj;
android.content.ComponentName componentname = (new AdminReceiver()).getWho(this);
if(devicepolicymanager.isAdminActive(componentname))
{
devicepolicymanager.lockNow();
} else
{
Context context = getApplicationContext();
CharSequence charsequence = (CharSequence)"Cannot sleep";
int i = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, charsequence, i);
if(toast != null)
toast.show();
Intent intent = new Intent(this, com/gsbina/android/sleepnow/MainActivity);
startActivity(intent);
}
finish();
}
30
31. PhoneSleepActivity.class(Kotlin)
public static final class object
implements JetObject
{
public final String getACTION_SLEEP()
{
return ACTION_SLEEP;
}
private final String ACTION_SLEEP = "com.gsbina.android.sleepnow.action.SLEEP";
object()
{
}
}
public static final object object$ = new object();
31
35. まとめ(定数)
35
public static final String ACTION_SLEEP =
"com.gsbina.android.sleepnow.action.SLEEP";
class object {
val ACTION_SLEEP = "com.gsbina.android.sleepnow.action.SLEEP"
}