This document provides information about an Android development community and courses. It includes details about course topics like fundamentals, UI/UX, and advanced topics. It lists mentors and their backgrounds. Event details are provided for courses in Moscow and a mentors program. Links are included to sign up for courses and view the community on Facebook.
Visual effects artist similar to an alchemist. His mission is making gold. In any case, it will be a fake, but believability depends only on artist skills. If a task doesn’t fit into a common artist pipeline it means that task for a VFX artist. You should know as much as possible and not to fear uncommon ways. In that session I’ll try to describe some rules followed by VFX artists working on the Planet of Heroes in detail as well as some tricks, optimization and artists’ motivations.
Hacking to be Performant? Talk presented at Meta Refresh 2015 Delhi Runup hosted at Wingify.
Presentation discusses the different hacks and approaches available to make your Application performant, but what are the different pros and cons related to each approach.
Running HTML5 Mobile Web Games at 60fpsApoorv Saxena
How to run Web Mobile Games at 60fps, talk presented at Meta Refresh 2015 conference.
Presentation discusses the performant tweaks / approaches to consider for running games at mobile at 60fps, and also entails the different pros and cons related to each approach.
Mastering Multiplayer Stage3d and AIR game development for mobile devicesJean-Philippe Doiron
Video Presentation : http://tv.adobe.com/watch/max-2013/mastering-multiplayer-stage3d-and-air-game-development-for-mobile-devices/
• The use of Stage3D across web and mobile deployments (with Adobe AIR) .
• The challenges encountered when attempting to maintain high-performance specifications on mobile devices .
• Being agile in a pre production game development
• We'll show how we have jump our of the predefined sandbox to develop creative solution on well known problem.
Visual effects artist similar to an alchemist. His mission is making gold. In any case, it will be a fake, but believability depends only on artist skills. If a task doesn’t fit into a common artist pipeline it means that task for a VFX artist. You should know as much as possible and not to fear uncommon ways. In that session I’ll try to describe some rules followed by VFX artists working on the Planet of Heroes in detail as well as some tricks, optimization and artists’ motivations.
Hacking to be Performant? Talk presented at Meta Refresh 2015 Delhi Runup hosted at Wingify.
Presentation discusses the different hacks and approaches available to make your Application performant, but what are the different pros and cons related to each approach.
Running HTML5 Mobile Web Games at 60fpsApoorv Saxena
How to run Web Mobile Games at 60fps, talk presented at Meta Refresh 2015 conference.
Presentation discusses the performant tweaks / approaches to consider for running games at mobile at 60fps, and also entails the different pros and cons related to each approach.
Mastering Multiplayer Stage3d and AIR game development for mobile devicesJean-Philippe Doiron
Video Presentation : http://tv.adobe.com/watch/max-2013/mastering-multiplayer-stage3d-and-air-game-development-for-mobile-devices/
• The use of Stage3D across web and mobile deployments (with Adobe AIR) .
• The challenges encountered when attempting to maintain high-performance specifications on mobile devices .
• Being agile in a pre production game development
• We'll show how we have jump our of the predefined sandbox to develop creative solution on well known problem.
Siggraph 2016 - Vulkan and nvidia : the essentialsTristan Lorach
This presentation introduces Vulkan components, what you must know to start using this new API. And what you must know when using it on NVIDIA hardware
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...DevClub_lv
Building photorealistic 3D experiences on the Web is a challenge. Making it with React is even harder but once you got there it pays off in many ways. This talk is about Evolution Gaming approach of working with 3D graphics on the Web using ReactJS with the goal to build the most sophisticated and expensive WebGL application ever created.
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJSFestUA
Создать фотореалистичное 3D приложение для Web не просто. Сделать это с React еще сложнее, но окупается с лихвой если вы все таки справились. Этот доклад о том как Evolution Gaming использует WebGL и ReactJS для создания самого сложного и дорогого WebGL приложения из когда либо разработанных.
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...Product of Things
Product architecture is the scheme by which the function of a product is allocated to physical components. The process includes building out a software and hardware product, while simultaneously conducting market research, receiving customer feedback, and developing the hardware, must be an informed and strategic process.In his session Royi will discuss the various architectures that were required for his team to develop in order to achieve different, yet optimal product versions for the Vidmind product. Through each product version, Royi covered where they went wrong and elaborate on what the company did to resolve these challenges in the next version and of course the outcome of each change that was implemented.
Console to PC VR: Lessons Learned from the UnspokenRobert Sprentall
GDC 2017 talk by Raja Bala from Intel and Bob Sprentall from Insomniac Games. Discusses changes Insomniac made to their engine and assistance Intel provided to improve performance and immersion on high end hardware.
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
This year for the Salone del Mobile at frog, we came up with a funky experiment, based on Drones, Android, and VR. In this talk, your hosts will walk you through our Drone Race experiment, touching topics like real-time computer vision, reactive programming for mobile, indoor positioning and (wheeled) Drones hacking. The variety and complexity of these topics is equal to its coolness though, so you may be puzzled asking yourself: "Where do I start?" We will share experiences and lots of code, so that you can start right away.
Siggraph 2016 - Vulkan and nvidia : the essentialsTristan Lorach
This presentation introduces Vulkan components, what you must know to start using this new API. And what you must know when using it on NVIDIA hardware
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...DevClub_lv
Building photorealistic 3D experiences on the Web is a challenge. Making it with React is even harder but once you got there it pays off in many ways. This talk is about Evolution Gaming approach of working with 3D graphics on the Web using ReactJS with the goal to build the most sophisticated and expensive WebGL application ever created.
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJSFestUA
Создать фотореалистичное 3D приложение для Web не просто. Сделать это с React еще сложнее, но окупается с лихвой если вы все таки справились. Этот доклад о том как Evolution Gaming использует WebGL и ReactJS для создания самого сложного и дорогого WebGL приложения из когда либо разработанных.
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...Product of Things
Product architecture is the scheme by which the function of a product is allocated to physical components. The process includes building out a software and hardware product, while simultaneously conducting market research, receiving customer feedback, and developing the hardware, must be an informed and strategic process.In his session Royi will discuss the various architectures that were required for his team to develop in order to achieve different, yet optimal product versions for the Vidmind product. Through each product version, Royi covered where they went wrong and elaborate on what the company did to resolve these challenges in the next version and of course the outcome of each change that was implemented.
Console to PC VR: Lessons Learned from the UnspokenRobert Sprentall
GDC 2017 talk by Raja Bala from Intel and Bob Sprentall from Insomniac Games. Discusses changes Insomniac made to their engine and assistance Intel provided to improve performance and immersion on high end hardware.
Hacking for Salone: Drone Races - Di Saverio; Lippolis - Codemotion Milan 2016Codemotion
This year for the Salone del Mobile at frog, we came up with a funky experiment, based on Drones, Android, and VR. In this talk, your hosts will walk you through our Drone Race experiment, touching topics like real-time computer vision, reactive programming for mobile, indoor positioning and (wheeled) Drones hacking. The variety and complexity of these topics is equal to its coolness though, so you may be puzzled asking yourself: "Where do I start?" We will share experiences and lots of code, so that you can start right away.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
5. Android Academy Staff
Yonatan Levin
Google Developer
Expert &
CTO @ KolGene
Yossi Segev
Mobile Engineer
Tech Lead @ Kik
Refael Ozeri
Founder & CEO
Hero Apps
Eden Bugdary
Mobile developer @
AppNext
20. How Is Motion Perceived?
Smooth
Motion
60
No
Difference
60+
Flip Book
12
Movies
Frames Per Second
Fluid Motion
24
+effects
21. We Have A Winner!
Smooth
Motion
60
No
Difference
60+
Flip Book
12
Movies
Frames Per Second
Fluid Motion
24
+effects
Smooth
Motion
60
Colt McAnlis: https://youtu.be/CaMTIgxCSqU
31. DisplayList
A sequence of graphics commands needed to be executed to render a specific view
These commands are a mixture of statements that can be directly mapped to OpenGL
commands
32. OpenGL
OpenGL is a cross-language, cross-platform API for rendering
2D and 3D vector graphics. The API is typically used to
interact with a GPU, to achieve hardware-accelerated
rendering.
33. GPU - For The Rescue!
CPU
new
View()
GPU
Polygons
Textures
DisplayList
51. Bonus question:
What’s the difference between PAL / NTSC ?
PAL (common in Europe and parts of Asia) delivers a frame
rate of 25 fps (frames per second) with 625 lines, while NTSC
(used in the U.S. and Canada) delivers a frame rate of 30 fps
using 525 lines.
78. Fixing Overdraw
There are 2 common reasons for overdraw:
- Redundant backgrounds / Redundant transparency
- Wasteful onDraw
- Things that aren’t visible at all gets drawn (not using quickReject)
- Things that will be overdrawn gets drawn (not using clipRect)
Colt McAnlis: https://youtu.be/vkTn3Ule4Ps
79. QuickReject
A method to tell if something can be not drawn at all.
Call quickReject to see if you can skip drawing of things that will be
off screen.
REF: https://developer.android.com/reference/android/graphics/Canvas.html
80. ClipRect
ClipRect is a way to avoid OverDraw,
By keeping your GPU from drawing pixels that you know that will be
obscured by other stuff,
you refrain from overdraw.
82. GPU Profiling
● A graph per visible app
● A bar per frame
● Render time corresponds height
● 16 millis benchmark (green)
● Crossing = skipping frame
https://developer.android.com/studio/profile/dev-options-rendering.html
86. Vsync / Misc Time
Misc = (vsync timestamp) - (timestamp when received)
→ work on the UI thread between two consecutive frames
● Choreographer log : “Missed vsync by XX ms skipping XX frames”
High? move work off UI Thread
VSync/
Misc
Input
Animation
Measure/
Layout
Draw
Sync &
Upload
Command
Issue
Swap
Buffers
91. Animation
Evaluate all running animators
Often : object animator, view property animator, and transitions
High?(2milis+) check custom animators / unintended work
VSync/
Misc
Input
Animation
Measure/
Layout
Draw
Sync &
Upload
Command
Issue
Swap
Buffers
92. Measure / Layout
Executing layout and measure callbacks for needed view.
More on that in a few slides :)
VSync/
Misc
Input
Animation
Measure/
Layout
Draw
Sync &
Upload
Command
Issue
Swap
Buffers
94. Sync & Upload
Upload bitmap to the GPU.
High?
● Too many images
● Too big of an image
VSync/
Misc
Input
Animation
Measure/
Layout
Draw
Sync &
Upload
Command
Issue
Swap
Buffers
95. Command Issue
Execution: Android's 2D renderer issuing commands to OpenGL to draw and
redraw all display lists
High?
● Complex view (custom?)
● Many views redrawing:
○ Invalidation
○ animationVSync/
Misc
Input
Animation
Measure/
Layout
Draw
Sync &
Upload
Command
Issue
Swap
Buffers
96. Swap Buffers
CPU done rendering and wait for GPU ack.
High?
A lot of GPU work
VSync/
Misc
Input
Animation
Measure/
Layout
Draw
Sync &
Upload
Command
Issue
Swap
Buffers
119. Constraint & Motion Layout Animations
Full example -> https://android.jlelse.eu/build-awesome-animations-with-7-lines-of-code-using-constraintlayout-854e8fd3ad93
120. Constraint & Motion Layout Animations
Full example -> https://android.jlelse.eu/build-awesome-animations-with-7-lines-of-code-using-constraintlayout-854e8fd3ad93
This animation is created with two different layouts file:
circuit.xml and circuit_detail.xml
121. Constraint & Motion Layout Animations
Full example -> https://android.jlelse.eu/build-awesome-animations-with-7-lines-of-code-using-constraintlayout-854e8fd3ad93
private fun showComponents() {
val constraintSet = ConstraintSet()
constraintSet.clone(this, R.layout.circuit_detail)
val transition = ChangeBounds()
transition.interpolator = AnticipateOvershootInterpolator(1.0f)
transition.duration = 1200
TransitionManager.beginDelayedTransition(constraint, transition)
constraintSet.applyTo(constraint)
}
122. Constraint & Motion Layout Animations
Full example -> https://medium.com/google-developers/introduction-to-motionlayout-part-iii-47cd64d51a5
Let’s touch a bit on the new motion layout :)
123. Constraint & Motion Layout Animations
Full example -> https://medium.com/google-developers/introduction-to-motionlayout-part-iii-47cd64d51a5
Keep in mind, motion layout can only provide its capabilities to its direct children
MotionLayout with CoordinatorLayout
124. Constraint & Motion Layout Animations
Full example -> https://medium.com/google-developers/introduction-to-motionlayout-part-iii-47cd64d51a5
Keep in mind, motion layout can only provide its capabilities to its direct children
With NavigationDrawer
125. Constraint & Motion Layout Animations
Full example -> https://medium.com/google-developers/introduction-to-motionlayout-part-iii-47cd64d51a5
Keep in mind, motion layout can only provide its capabilities to its direct children
With ViewPager
126. Quote of the day
“Making a beautiful app is easy,
Making it fun and easy to ride for a first timer is
the real challenge.”
127. Quote of the day
“Making a beautiful app is easy,
Making it fun and easy to ride for a first timer is
the real challenge.”
Refael Ozeri, 12.2.2018
130. Vector Drawables
Vector Drawables !
Amazing benefit?
It’s density independent which is
both convenient and efficient..
And also leads to smaller APK
size which is always good!
134. Vector Drawables
How? There are 5 topics we have to cover!
● Drawing paths
● Transforming groups of paths
● Trimming stroked paths
135. Vector Drawables
How? There are 5 topics we have to cover!
● Drawing paths
● Transforming groups of paths
● Trimming stroked paths
● Morphing paths
136. Vector Drawables
How? There are 5 topics we have to cover!
● Drawing paths
● Transforming groups of paths
● Trimming stroked paths
● Morphing paths
● Clipping paths
141. Drawing paths
Command Description
M x,y Begin a new subpath by moving to (x,y).
L x,y Draw a line to (x,y).
C x1,y1 x2,y2 x,y Draw a cubic bezier curve to (x,y) using control points
142. Drawing paths
Command Description
M x,y Begin a new subpath by moving to (x,y).
L x,y Draw a line to (x,y).
C x1,y1 x2,y2 x,y Draw a cubic bezier curve to (x,y) using control points
Z Close the path by drawing a line back to the beginning of
the current subpath
144. Drawing paths
Property name Element type Value type Min Max
android:fillAlpha <path> float 0 1
android:fillColor <path> integer --- ---
145. Drawing paths
Property name Element type Value type Min Max
android:fillAlpha <path> float 0 1
android:fillColor <path> integer --- ---
android:strokeAlpha <path> float 0 1
146. Drawing paths
Property name Element type Value type Min Max
android:fillAlpha <path> float 0 1
android:fillColor <path> integer --- ---
android:strokeAlpha <path> float 0 1
android:strokeColor <path> integer --- ---
147. Drawing paths
Property name Element type Value type Min Max
android:fillAlpha <path> float 0 1
android:fillColor <path> integer --- ---
android:strokeAlpha <path> float 0 1
android:strokeColor <path> integer --- ---
android:strokeWidth <path> float 0 1
161. Transforming groups of paths
Property name Element type Value type
android:pivotX <group> float
android:pivotY <group> float
android:rotation <group> float
android:scaleX <group> float
android:scaleY <group> float
android:translateX <group> float
android:translateY <group> float
162. Transforming groups of paths
<vector ...>
<group android:translateX="2">
<path android:name="play_path"/>
</group>
</vector>
163. Transforming groups of paths
<vector ...>
<!-- Translate the canvas, then draw the play icon. -->
<group android:translateX="2">
<path android:name="play_path"/>
</group>
</vector>
164. Transforming groups of paths
<vector ...>
<!-- Translate the canvas, then rotate, then scale, then draw the play icon. -->
<group android:scaleX="1.5" android:pivotX="6" android:pivotY="6">
<group android:rotation="90" android:pivotX="6" android:pivotY="6">
<group android:translateX="2">
<path android:name="play_path"/>
</group>
</group>
</group>
</vector>
168. Ok stop.. Let’s use it?
<?xml version="1.0" encoding="utf-8"?>
<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/expanded"
android:drawable="@drawable/vd_checkable_expandcollapse_expanded"
android:state_checked="true"/>
<item
android:id="@+id/collapsed"
android:drawable="@drawable/vd_checkable_expandcollapse_collapsed"/>
… </animated-selector>
169. Ok stop.. Let’s use it?
...
<transition
android:drawable="@drawable/avd_checkable_expandcollapse_collapsed_to_expanded"
android:fromId="@id/collapsed"
android:toId="@id/expanded"/>
<transition
android:drawable="@drawable/avd_checkable_expandcollapse_expanded_to_collapsed"
android:fromId="@id/expanded"
android:toId="@id/collapsed"/>
</animated-selector>
170. Trimming stroked paths
Property name Element type Value type Min Max
android:trimPathStart <path> float 0 1
android:trimPathEnd <path> float 0 1
android:trimPathOffset <path> float 0 1
189. So.. about that download icon...
- Fill alpha
(at the end when fading out the downloading arrow).
190. So.. about that download icon...
- Fill alpha
- Stroke width
191. So.. about that download icon...
- Fill alpha
- Stroke width
(during the progress indicator to check mark
animation).
192. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
193. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
(at the beginning to create the ‘bouncing arrow’
effect).
194. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
- Trim path start/end
195. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
- Trim path start/end
(at the end when transitioning from the progress bar
to the check mark).
196. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
- Trim path start/end
- Path morphing
197. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
- Trim path start/end
- Path morphing
(at the beginning to create the ‘bouncing line’ effect,
and at the end while transitioning the check mark
back into an arrow).
198. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
- Trim path start/end
- Path morphing
- Clip path
199. So.. about that download icon...
- Fill alpha
- Stroke width
- Translation and rotation
- Trim path start/end
- Path morphing
- Clip path
(vertically filling the contents of the downloading
arrow to indicate indeterminate progress).
206. Lottie, by AirBnB
Your designer can create animations using Adobe After Effects and export them to a JSON file.
Lottie builds our animations with that file.
And that’s it :)
208. Lottie, by AirBnB - Usage
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:lottie_rawRes="@raw/hello_world"
//or
app:lottie_fileName="hello_world.json"
//Loop indefinitely
app:lottie_loop="true"
// Start playing as soon as the animation is loaded
app:lottie_autoPlay="true" />
upload bitmap information to the GPU.
The UI thread passes all the resources to the RenderThread.
RenderThread (added in L) is a thread helping the busy UI thread with the conversion of display lists to OpenGL commands, and sends them to the GPU. During which, the UI thread can start processing next frame.
Systrace has traces on method android team added. If they had added alot of traces - it would slow the app.