This document provides information about an Android development community and lessons on activities and fragments. It summarizes the key topics covered in an online Android course, including activity and fragment lifecycles, saving persistent data, and communicating between fragments. It also introduces mentors from the community and examples of how to create activities and fragments and handle configuration changes and backgrounding.
An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map.
Each activity is given a window in which to draw its user interface. The window typically fills the screen, but may be smaller than the screen and float on top of other windows.
An application usually consists of multiple activities that are loosely bound to each other. Typically, one activity in an application is specified as the "main" activity, which is presented to the user when launching the application for the first time. Each activity can then start another activity in order to perform different actions.
Each time a new activity starts, the previous activity is stopped, but the system preserves the activity in a stack .
When a new activity starts, it is pushed onto the back stack and takes user focus.
An Activity is an application component that provides a screen with which users can interact in order to do something, such as dial the phone, take a photo, send an email, or view a map.
Each activity is given a window in which to draw its user interface. The window typically fills the screen, but may be smaller than the screen and float on top of other windows.
An application usually consists of multiple activities that are loosely bound to each other. Typically, one activity in an application is specified as the "main" activity, which is presented to the user when launching the application for the first time. Each activity can then start another activity in order to perform different actions.
Each time a new activity starts, the previous activity is stopped, but the system preserves the activity in a stack .
When a new activity starts, it is pushed onto the back stack and takes user focus.
Architecting Single Activity Applications (With or Without Fragments)Gabor Varadi
Presentation by Gabor Varadi (@zhuinden)
What Activity and Fragment actually are in Android
What are the problems they solve, and what are their downsides
How to use a custom solution that simplifies navigation in Android applications
https://github.com/Zhuinden/navigation-example
Architecting Single Activity Applications (With or Without Fragments)Gabor Varadi
Presentation by Gabor Varadi (@zhuinden)
What Activity and Fragment actually are in Android
What are the problems they solve, and what are their downsides
How to use a custom solution that simplifies navigation in Android applications
https://github.com/Zhuinden/navigation-example
Our biggest challenges as Front-Enders. We have a number of questions to solve, we can evolve if we face them as our responsibility. This deck includes: comparisons of API models; framework's groups; programming concepts/paradigms.
Links:
Portuguese version: http://www.slideshare.net/Hugeinc/desenvolvimento-clientside-2016
Zhou-yi comparison tool: http://zhou-yi.herokuapp.com
Lunar, framework abstraction: https://github.com/hugeinc/lunar
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
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.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
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/
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
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.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
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.
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
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
12. What’s For Today?
● Activity
● Fragment
● Persisting data
● External libraries
13. Reminder - Listeners / callbacks
In computer programming, a callback is a piece of executable code
that is passed as an argument to other code, which is expected to
call back (execute) the argument at some convenient time.
Function a
(listener)
Function a
(listener)
Time
Function a
(listener)
Function a
(listener)
Trigger
26. Activity Lifecycle
Lifecycle is a sequence of setup and teardown callbacks.
Application lifecycle != Thread lifecycle != activity lifecycle.
User and System determine lifecycle.
27. Activity Lifecycle
An application normally has several activities.
When a new activity starts the old one goes into the stack (LIFO).
3 States:
Resumed - foreground has user focus
Paused - partially visible (in memory)
Stopped - not visible (in memory but can be killed) Activity a
Activity b
Activity c
28. If BACK button pops from the Stack
What does the HOME button do?
29. If BACK button pops from the Stack
What does the HOME button do?
onUserLeaveHint()
33. What to do in every state
onCreate & onDestroy
will be called at most once.
onPause & onResume
can be called a lot.
Foreground
Visible
Background
onPause()
onStop()
onResume()
onStart()
34. Activity - onCreate()
When: on first creation of activity.
What: inflate view, find references, bind data, initialize one timers.
Also has bundle with previous frozen state.
35. Activity - onStart()
●When: the activity is becoming visible to the user.
●What: specific stuff which happens every time.
●Called every time.
36. Activity - onResume()
●When: User interaction.
●What: resume drawing start animations add listeners.
●Top of the activity stack.
●Always followed by onPause().
37. Activity - onPause()
●When: resuming a previous activity
●What: commit unsaved changes to persistent data, stop intensive
CPU actions but keep drawing, remove listeners.
●Promised by the system.
38. Activity - onStop()
● When: Activity is no longer visible either from starting a new one
or destroying the current one.
●What: stop drawing and animations.
●onRestart() may be triggered after onStop().
39. Activity - onDestroy()
● When: final call before dying.
●What: Nothing important.
●Not promised.
●Can be called due to explicit or implicit destruction. isFinishing()
allows us to distinguish.
44. Activity - Life and death
●When is activity “killable”?
○ onStop
○ OnDestroy
●Where do we save the data?
○ onPause
●Calling finish() goes directly to onDestroy()
45. Activity - Rotation
● A.K.A configuration change.
●Destroyed and re-created.
○ re-retrieve all resources, drawables, layouts and strings.
●Requires declaration in manifest per activity and @Override
onConfigurationChange() method.
48. Developer Responsibilities Example
Does not crash if the user receives a phone call or switches to
another app.
Does not consume valuable system resources when the user is not
actively using your app.
Does not lose user’s progress when he leaves and returns to the
app.
Does not crash or lose user’s progress on orientation change.
70. Fragments
●Started with android API 11 (Honeycomb).
●Sophisticated UI on larger screens.
●Modularize code.
○ Receives its own input.
○ Can be added or removed while the activity is running.
○ Has its own lifecycle.
72. Fragments - Code Recipe
Must have empty constructor.
Use factory design pattern.
onCreate receives arguments passed.
onCreateView return inflated View.
73. Fragment - onCreate()
When: creating the fragment.
What: Initialize essential component of the fragment that you want
to retain when the fragment is paused or stopped, then resumed.
74. Fragment - onCreateView()
●When: drawing occurs for the first time.
●What: To draw a UI for a fragment, you must return a view from
this method that is the root of your fragment’s layout. You can
return null if the fragment does not provide a UI.
84. Fragments - Backstack
●When a user presses back
In an activity any Transaction
on the BackStack are popped
fff before the activity
finishes itself. Fragment a
Fragment b
Fragment c
Fragment
BackStack
Activity B
Activity A
ActivitiesBackStack
89. Fragment - Passing data between fragments
●Should always occur via the joint parent activity.
90. Fragments - Passing data between fragments
●Should always occur via the joint parent activity.
●Define an interface in the fragment class and implement it within
the activity.
●The Fragment captures the interface implementation in
onAttach().
●From there you can call interface methods to communicate to the
activity.
91. Activity implements Fragment’s interface
Fragments - Passing data between fragments
Fragment A
has reference
to Activity
Fragment B
has reference
to Activity
97. Fragments - Passing data between fragments
Otto Library
Event bus.
Decouples code.
Communication.
98. Otto - Recipe
Create a singleton holding an instance of Bus class.
Register to bus.
Create a method to receive and annotate with @Subscribe.
Publish message to subscribers.
Unregister to bus (onStop).