The document provides 10 tips to improve Android apps:
1. Avoid activity leaks by removing references to activities and using event buses instead of static references.
2. Be careful of inner class leaks and use weak references for handlers.
3. Only perform UI work on the UI thread and use libraries for network, images, JSON, and databases.
4. Consider using libraries for common tasks like HTTP requests, image loading, and JSON parsing to avoid reinventing the wheel.
Android Performance Optimization presentation which is told on @ DevFest Ankara 2013, @ DevFest Eskişehir 2013, @ DevFest Konya 2014, @DevFest İstanbul 2014
This document primarily covers micro-optimizations that can improve overall app performance when combined, but it's unlikely that these changes will result in dramatic performance effects. Choosing the right algorithms and data structures should always be your priority, but is outside the scope of this document. You should use the tips in this document as general coding practices that you can incorporate into your habits for general code efficiency.
One of the trickiest problems you'll face when micro-optimizing an Android app is that your app is certain to be running on multiple types of hardware. Different versions of the VM running on different processors running at different speeds. It's not even generally the case that you can simply say "device X is a factor F faster/slower than device Y", and scale your results from one device to others. In particular, measurement on the emulator tells you very little about performance on any device.
To ensure your app performs well across a wide variety of devices, ensure your code is efficient at all levels and aggressively optimize your performance.
Slides from my talk at FrameworksDays Android Saturday technical meetup. More details about this event: http://frameworksdays.com/event/android-it-saturday
A workshop about the "dark side" of iOS, Objective-C and Xcode. Discussion about private API, why Apple doesn't want you to use it and how they enforce that. What information can you extract from a compiled binary? Let's take a look at the possibilities of reverse engineering including demos and showcases.
Android Performance Optimization presentation which is told on @ DevFest Ankara 2013, @ DevFest Eskişehir 2013, @ DevFest Konya 2014, @DevFest İstanbul 2014
This document primarily covers micro-optimizations that can improve overall app performance when combined, but it's unlikely that these changes will result in dramatic performance effects. Choosing the right algorithms and data structures should always be your priority, but is outside the scope of this document. You should use the tips in this document as general coding practices that you can incorporate into your habits for general code efficiency.
One of the trickiest problems you'll face when micro-optimizing an Android app is that your app is certain to be running on multiple types of hardware. Different versions of the VM running on different processors running at different speeds. It's not even generally the case that you can simply say "device X is a factor F faster/slower than device Y", and scale your results from one device to others. In particular, measurement on the emulator tells you very little about performance on any device.
To ensure your app performs well across a wide variety of devices, ensure your code is efficient at all levels and aggressively optimize your performance.
Slides from my talk at FrameworksDays Android Saturday technical meetup. More details about this event: http://frameworksdays.com/event/android-it-saturday
A workshop about the "dark side" of iOS, Objective-C and Xcode. Discussion about private API, why Apple doesn't want you to use it and how they enforce that. What information can you extract from a compiled binary? Let's take a look at the possibilities of reverse engineering including demos and showcases.
Java can be used two types of programs: applications & applets.An application is a program that runs on your computer, under the operating system of that computer.
An applets is an application designed to be transmitted over the Internet and executed by a java-compatible Web Browser. An applet is an executable program that runs inside a browser, such as Netscape or Internet Explorer.
1. Create React Native App
2. Implementazione del codice del gioco del memory
3. Expo: integrazione di funzionalità native
4. Eject del progetto: integrazione di Expo
5. Integrazione camera/libreria foto
Multithreading and concurrency in androidRakesh Jha
Here you will learn -
What is Multithreading
What is concurrency
Process Vs Thread
Improvements and issues with concurrency
Limits of concurrency gains
Concurrency issues
Threads pools with the Executor Framework
AsyncTask and the UI Thread
Code
My talk at CodeFest 2017 in Novosibirsk, Russia. I talk about the benefits of adding a app crawler to your build process. In todays Agile world it's becoming difficult to keep up with the amount of manual and exploratory testing with shorter and shorter sprint iterations. It's time to put machines to work and help take some of the load off of us!
Experiences building apps with React Native @UtrechtJS May 2016Adrian Philipp
React Native is all about combining great user experience on native platforms with the developer experience of React on the web. Since it’s start one year ago, React Native continuously enjoys a tremendous traction. In 2015 React got popular, 2016 will be the year of React Native. I followed the development since the start and now I’m busy building my third React Native app. During my talk I like to introduce the library, show useful tooling and give practical advice for building React Native apps.
Java can be used two types of programs: applications & applets.An application is a program that runs on your computer, under the operating system of that computer.
An applets is an application designed to be transmitted over the Internet and executed by a java-compatible Web Browser. An applet is an executable program that runs inside a browser, such as Netscape or Internet Explorer.
1. Create React Native App
2. Implementazione del codice del gioco del memory
3. Expo: integrazione di funzionalità native
4. Eject del progetto: integrazione di Expo
5. Integrazione camera/libreria foto
Multithreading and concurrency in androidRakesh Jha
Here you will learn -
What is Multithreading
What is concurrency
Process Vs Thread
Improvements and issues with concurrency
Limits of concurrency gains
Concurrency issues
Threads pools with the Executor Framework
AsyncTask and the UI Thread
Code
My talk at CodeFest 2017 in Novosibirsk, Russia. I talk about the benefits of adding a app crawler to your build process. In todays Agile world it's becoming difficult to keep up with the amount of manual and exploratory testing with shorter and shorter sprint iterations. It's time to put machines to work and help take some of the load off of us!
Experiences building apps with React Native @UtrechtJS May 2016Adrian Philipp
React Native is all about combining great user experience on native platforms with the developer experience of React on the web. Since it’s start one year ago, React Native continuously enjoys a tremendous traction. In 2015 React got popular, 2016 will be the year of React Native. I followed the development since the start and now I’m busy building my third React Native app. During my talk I like to introduce the library, show useful tooling and give practical advice for building React Native apps.
Android Development: Build Android App from ScratchTaufan Erfiyanto
a month ago, i have a change to held a one day workshop about Android development at Phetchaburi Rajabhat University, Thailand. The workshop is attended by students and lecturers. it is a pleasure to me to see many people that excited to learn android development.
This is a presentation slide of my presentation. in this presentation you will learn about how to build create a simple to do list app from scratch.
content of the presentation slide:
- Introduction: what Android is?
- Android development tools
- Creating Android Project
- Understanding the Project Structure
- Creating Android Emulator
- Running Android Project on Emulator
- Running Android Project on Device
- Creating User Interface
- Manipulating Widget
- Creating To Do List App
- Integrating SQLite Database to Android Project
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.
The Top Skills That Can Get You Hired in 2017LinkedIn
We analyzed all the recruiting activity on LinkedIn this year and identified the Top Skills employers seek. Starting Oct 24, learn these skills and much more for free during the Week of Learning.
#AlwaysBeLearning https://learning.linkedin.com/week-of-learning
See what pitfalls companies are facing when running Liferay portal. In the previous year, our company has audited 5 real-life projects based on Liferay Portal which are now running in production mode and serving many users. The audits were focused on architecture, infrastructure, technical design and implementation. During the presentation, we will show you common anti-patterns we have found during the audits and their impacts and consequences on the portal.
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Milan 2017 - D...Demi Ben-Ari
Once you start working with distributed Big Data systems, you start discovering a whole bunch of problems you won’t find in monolithic systems.
All of a sudden to monitor all of the components becomes a big data problem itself.
In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system once you’re using tools like:
Web Services, Apache Spark, Cassandra, MongoDB, Amazon Web Services.
Not only the tools, what should you monitor about the actual data that flows in the system?
And we’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
Demi Ben-Ari - Monitoring Big Data Systems Done "The Simple Way" - Codemotion...Codemotion
Once you start working with Big Data systems, you discover a whole bunch of problems you won’t find in monolithic systems. Monitoring all of the components becomes a big data problem itself. In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system using tools like: Web Services,Spark,Cassandra,MongoDB,AWS. Not only the tools, what should you monitor about the actual data that flows in the system? We’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
Monitoring Big Data Systems Done "The Simple Way" - Codemotion Berlin 2017Demi Ben-Ari
Once you start working with distributed Big Data systems, you start discovering a whole bunch of problems you won’t find in monolithic systems.
All of a sudden to monitor all of the components becomes a big data problem itself.
In the talk we’ll mention all of the aspects that you should take in consideration when monitoring a distributed system once you’re using tools like:
Web Services, Apache Spark, Cassandra, MongoDB, Amazon Web Services.
Not only the tools, what should you monitor about the actual data that flows in the system?
And we’ll cover the simplest solution with your day to day open source tools, the surprising thing, that it comes not from an Ops Guy.
A talk given by me at the June "Mumbai Android Developers (MAD)" meetup.
I gave a recap of the Google I/O 2017 from a user as well as developer point of view. Being an Android meetup, we concentrated on the Android launches, framework updates and the overall momentum change in the tech world.
Presentation from the 4th Athens Gophers Meetup.
At a glance we present:
- why we introduced a new language in the organization and why that
was Go
- how we approached the transition
- some of the projects we built in Go
- the challenges we faced and the lessons we learned in the process
Building a data pipeline to ingest data into Hadoop in minutes using Streamse...Guglielmo Iozzia
Slides from my talk at the Hadoop User Group Ireland meetup on June 13th 2016: building a data pipeline to ingest data from sources of different nature into Hadoop in minutes (and no coding at all) using the Open Source Streamsets Data Collector tool.
9. ● Activities/fragments etc - they have a life cycle
● Activity will not be GC-ed
● Static references
○ become dangling "pointers"
○ m_staticActivity = staticFragment.getActivity()
Static References
29. ● Solves your problem
● Plays nicely with your current dependencies
● Dex method count
● Dependencies
● Maintenance
● Runtime permissions
Pick 3rd party lib checklist
35. ● Don't call private APIs by reflection
● Don't call private native methods (NDK/C level)
● Don't use Runtime.exec
● "adb shell am" to communicate with other process is not something
we want to support
System abuse
36. ● Don't abuse the system
● Know and use APIs
System abuse
38. ● API will be removed
● Your app will not work
● No way to update APIs and tools
Deprecation
39. ● There is a compelling reason to move
○ Security
○ Correctness
○ Performance
Deprecation
40. ● Removed at M (still available as dependency)
● Use HttpURLConnection
○ Simple API
○ Small size
○ Transparent compression
○ Response caching
Don’t use Apache Http Connection
41. ● Know and use APIs
● Refactor your dependencies
● Update your dependencies and tools
Deprecation