The document discusses the gReporter open-source Android application. gReporter allows users to capture text, audio, photos and location data, and submit the captured information to a server via HTTP. It demonstrates various Android platform features like GPS, media capture, SQLite storage and HTTP networking. The summary provides examples of how gReporter implements location tracking, settings forms, text and audio reporting functionality.
Static Reference Analysis for GUI Objects in Android SoftwareDacong (Tony) Yan
The popularity of Android software has grown dramatically in the last
few years. It is essential for researchers in programming languages
and compilers to contribute new techniques in this increasingly
important area. Such techniques require a foundation of program
analyses for Android. The target of our work is static object
reference analysis, which models the flow of object references.
Existing reference analyses cannot be applied directly to Android
because the software is component-based and event-driven.
An Android application is driven by a graphical user interface (GUI),
with GUI objects responding to user actions. These objects and the
event handlers associated with them ultimately determine the possible
flow of control and data. We propose the first static analysis to
model GUI-related Android objects, their flow through the application,
and their interactions with each other via the abstractions defined by
the Android platform. A formal semantics for the relevant Android
constructs is developed to provide a solid foundation for this and
other analyses. Next, we propose a constraint-based reference analysis
based on the semantics. The analysis employs a constraint graph to
model the flow of GUI objects, the hierarchical structure of these
objects, and the effects of relevant Android operations. Experimental
evaluation on real-world Android applications strongly suggests that
the analysis achieves high precision with low cost.
The analysis enables static modeling of control/data flow that is
foundational for compiler analyses, instrumentation for
event/interaction profiling, static error checking, security analysis,
test generation, and automated debugging. It provides a key component
to be used by compile-time analysis researchers in the growing area of
Android software.
Static Reference Analysis for GUI Objects in Android SoftwareDacong (Tony) Yan
The popularity of Android software has grown dramatically in the last
few years. It is essential for researchers in programming languages
and compilers to contribute new techniques in this increasingly
important area. Such techniques require a foundation of program
analyses for Android. The target of our work is static object
reference analysis, which models the flow of object references.
Existing reference analyses cannot be applied directly to Android
because the software is component-based and event-driven.
An Android application is driven by a graphical user interface (GUI),
with GUI objects responding to user actions. These objects and the
event handlers associated with them ultimately determine the possible
flow of control and data. We propose the first static analysis to
model GUI-related Android objects, their flow through the application,
and their interactions with each other via the abstractions defined by
the Android platform. A formal semantics for the relevant Android
constructs is developed to provide a solid foundation for this and
other analyses. Next, we propose a constraint-based reference analysis
based on the semantics. The analysis employs a constraint graph to
model the flow of GUI objects, the hierarchical structure of these
objects, and the effects of relevant Android operations. Experimental
evaluation on real-world Android applications strongly suggests that
the analysis achieves high precision with low cost.
The analysis enables static modeling of control/data flow that is
foundational for compiler analyses, instrumentation for
event/interaction profiling, static error checking, security analysis,
test generation, and automated debugging. It provides a key component
to be used by compile-time analysis researchers in the growing area of
Android software.
Being Epic: Best Practices for Android DevelopmentReto Meier
Turn good ideas into great apps by following some essential Android development best practices. Starting with an overview of the 5 deadly sins and 5 golden rules, you will learn how to build apps that users love and that are good citizens of the mobile environment. You will also learn specific best practices for background apps and location based services.
User Experience is dead. Long live the user experience!Greg Bell
The importance of a great user experience has never been as important as it is today. Users expect to be able to just pick up the newest gadget or piece of software and be able to figure it out with ease. The role of user experience professional is dead. Everyone from the marketing team to the intern-developer must be a user experience professional to make a successful product.
It has been said that it takes 10 years to create successful software, does our current understanding of user experience fit within this model? How does the user experience actually get defined and who has the power to change it? How can the user experience get shaped in a more iterative and evolutionary way?
Through the lens of releasing a social software application and moving from consultant to product owner, this talk explores current user experience methodologies as well as lessons learned through web application release and management.
This is my slide in session "Recommended material components for your app" in Android Bangkok 2019.
session detail : Android Developer have some problem for create UI in application and it is so difficult to talk to designer in your team. This session talk about some Material Component and recommend it to Android Developer to use it for solve problem about create layout and understand Material Design for talking it with your designer.
Android workshop - 02. Glass development 101Johnny Sung
Glass development 101
All example sources are in Github:
Example 00: Hello, World
https://github.com/j796160836/GlassWorkshop-Exercise00_HelloWorld
Example 01: New Hello, World
https://github.com/j796160836/GlassWorkshop-Exercise01_NewHelloWorld
Example 02: MyVoiceCommand
https://github.com/j796160836/GlassWorkshop-Exercise02_MyVoiceCommand
Example 03: UseCardBuilder
https://github.com/j796160836/GlassWorkshop-Exercise03_CardBuilder
My presentation at the recent Open Camp in Dallas, TX
Is your content ready to go mobile? Is your audience spending more time viewing your site on their iPhone then a desktop? If they're not, they will be soon. Mobile is exploding, and to make sure your message is getting across to the largest audience, you need to make sure you're giving mobile user the best experience. Jeremy will go over tips, tricks, examples - along with some easy ways to get your site ready for a mobile audience.
This session will examine each element of the Forms Service Architecture in detail, from the server-side FormProcessor & Form Filters to the client-side Form UI component and Forms Runtime JavaScript library. You will learn how to use the form services in your own applications, discuss configuration options and work through several customization examples demonstrating how to implement custom controls, form templates and form filters.
This session will cover the use of Forms in Share and demonstrate how to configure and customize them for your applications and data models. A working example will be used to show how to define forms for custom types, how out of the box form controls can be configured and how new custom controls can be plugged-in. We’ll also discuss the various extension hook points the Forms Service provides.
Being Epic: Best Practices for Android DevelopmentReto Meier
Turn good ideas into great apps by following some essential Android development best practices. Starting with an overview of the 5 deadly sins and 5 golden rules, you will learn how to build apps that users love and that are good citizens of the mobile environment. You will also learn specific best practices for background apps and location based services.
User Experience is dead. Long live the user experience!Greg Bell
The importance of a great user experience has never been as important as it is today. Users expect to be able to just pick up the newest gadget or piece of software and be able to figure it out with ease. The role of user experience professional is dead. Everyone from the marketing team to the intern-developer must be a user experience professional to make a successful product.
It has been said that it takes 10 years to create successful software, does our current understanding of user experience fit within this model? How does the user experience actually get defined and who has the power to change it? How can the user experience get shaped in a more iterative and evolutionary way?
Through the lens of releasing a social software application and moving from consultant to product owner, this talk explores current user experience methodologies as well as lessons learned through web application release and management.
This is my slide in session "Recommended material components for your app" in Android Bangkok 2019.
session detail : Android Developer have some problem for create UI in application and it is so difficult to talk to designer in your team. This session talk about some Material Component and recommend it to Android Developer to use it for solve problem about create layout and understand Material Design for talking it with your designer.
Android workshop - 02. Glass development 101Johnny Sung
Glass development 101
All example sources are in Github:
Example 00: Hello, World
https://github.com/j796160836/GlassWorkshop-Exercise00_HelloWorld
Example 01: New Hello, World
https://github.com/j796160836/GlassWorkshop-Exercise01_NewHelloWorld
Example 02: MyVoiceCommand
https://github.com/j796160836/GlassWorkshop-Exercise02_MyVoiceCommand
Example 03: UseCardBuilder
https://github.com/j796160836/GlassWorkshop-Exercise03_CardBuilder
My presentation at the recent Open Camp in Dallas, TX
Is your content ready to go mobile? Is your audience spending more time viewing your site on their iPhone then a desktop? If they're not, they will be soon. Mobile is exploding, and to make sure your message is getting across to the largest audience, you need to make sure you're giving mobile user the best experience. Jeremy will go over tips, tricks, examples - along with some easy ways to get your site ready for a mobile audience.
This session will examine each element of the Forms Service Architecture in detail, from the server-side FormProcessor & Form Filters to the client-side Form UI component and Forms Runtime JavaScript library. You will learn how to use the form services in your own applications, discuss configuration options and work through several customization examples demonstrating how to implement custom controls, form templates and form filters.
This session will cover the use of Forms in Share and demonstrate how to configure and customize them for your applications and data models. A working example will be used to show how to define forms for custom types, how out of the box form controls can be configured and how new custom controls can be plugged-in. We’ll also discuss the various extension hook points the Forms Service provides.
A session on using Flex and AIR to develop application that can run on IOS, Android,or PlayBook. A primer on getting at least close to the dream of one code base, multiple devices.
Design Patterns for Tablets and SmartphonesMichael Galpin
This is a talk I gave at AnDevCon. It talks about ways to take advantage of features introduced in Android 3.0 to create more modular and better looking apps.
Android Workshop for NTU. A getting started guide to android application development.
UPDATE (Oct 2013): An updated slide at http://samwize.com/2013/10/13/android-workshop-2013/
Non Conventional Android Programming Enguest9bcef2f
Learn as you can developing software for mobile devices using only html, css and javascript and how you can use Spring Framework in software for mobile devices
Non Conventional Android Programming (English)Davide Cerbo
Learn as you can developing software for mobile devices using only html, css and javascript and how you can use Spring Framework in software for mobile devices
My presentation on Android to the Ruby Users of Minnesota group. Introduces the platform, demo applications I wrote and how to list your app in the Android market.
Thiyagu, Krishna, Soundar and Ashwin presented at xconf on some tools that can help support extreme programming practices on a project based of the Android platform
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
3. Platform Features
• Application framework enabling reuse and replacement of components
• Dalvik virtual machine optimized for mobile devices
• Integrated browser based on the open source WebKit engine
• Optimized graphics powered by a custom 2D graphics library; 3D graphics
based on the OpenGL ES 1.0 specification (hardware acceleration optional)
• SQLite for structured data storage
• Media support for common audio, video, and still image formats (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF)
• GSM Telephony (hardware dependent)
• Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
• Camera, GPS, compass, and accelerometer (hardware dependent)
• Rich development environment including a device emulator, tools for debugging,
memory and performance profiling, and a plugin for the Eclipse IDE
4. What’s in an App?
Libraries
Other
Default Other Service
Other
Activities
Activity Activities
Activities
Content
Android Manifest
Drawable Layouts Values Assets
9. gReporter:
open-source
geotagging
media capture
report client
for the Android Platform
http://openideals.com/greporter
10. gReporter: what is it?
• Android client application
• Captures text, audio and photo
• Finds device location via GPS or Network
• Submits captured data + location
coordinates to any configured server via
HTTP
• Displays page of submitted reports or other
info
• Released under Apache License
11. Main Menu / LocationManager
• Three Button Main Menu
• Activates LocationManager for GPS or Network-
based location lookup
• Uses a single PNG background image
• Uses “toast” dialogs to display updated location
information from callback
12. Main Menu / LocationManager
Locator.xml
<Button android:id=quot;@+id/btnSubmitAudioquot;
((Button)findViewById(R.id.btnSubmit
android:layout_width=quot;wrap_contentquot;
Audio)).setOnClickListener(this);
android:layout_height=quot;wrap_contentquot;
android:layout_alignParentRight=quot;truequot;
android:layout_gravity=quot;centerquot;
android:text=quot;Record & Submit Audio Reportquot;
android:padding=quot;10spquot;/>
LocationFormActivity.java
public void startGPS ()
{
//---use the LocationManager class to obtain GPS locations---
if (lm == null)
{
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
if (lm.isProviderEnabled(LocationManager.GPS_PROVIDER))
{
Log.i(TAG, quot;starting up GPS location provider...quot;);
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
LOCATION_UPDATE_TIME, LOCATION_UPDATE_DISTANCE, locationListener);
currentLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
updateLocation (currentLocation);
}
if (lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
{
...
}
}
}
13. Settings and Text Report Forms
• Basic forms with text
field, input boxes, drop-
downs are all possible
• Values of forms are
either stored in local
sqlite database or
submitted to the server
• on G1 form editing is
always in landscape /
horizontal mode
16. Audio Recording / File System
• Audio recording through built-in device microphone
in 3GP format
• Captured to SD card storage
• Playback review / re-record overwrite
• Audio upload to server via HTTP Post
19. Photo Capture & Display
• Capture of photo from built-in camera
• Captured in JPEG format at screen-size
resolution (480x320)
• Compressed from 3MP format on capture
• Stored on local SD card (also accessible via USB
mount or card reader)
• Upload to server via HTTP Post
20. Photo Capture & Display
reportphotoform.xml
<ImageView android:id=quot;@+id/previewphotoquot; android:layout_width=quot;wrap_contentquot;
android:layout_height=quot;wrap_contentquot;
android:layout_gravity=quot;topquot;/>
PhotoFormActivity
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
currentPhotoPath = this.getIntent().getStringExtra(quot;photofilequot;);
setContentView(R.layout.reportphotoform);
((Button)findViewById(R.id.btnTakePicture)).setOnClickListener(this);
((Button)findViewById(R.id.btnReportFormSubmit)).setOnClickListener(this);
((Button)findViewById(R.id.btnReportFormCancel)).setOnClickListener(this);
if (currentPhotoPath != null)
{
Toast.makeText(getBaseContext(), quot;Ready to send photo: quot; + currentPhotoPath,
Toast.LENGTH_LONG).show();
((ImageView)findViewById(R.id.previewphoto)).setImageURI(Uri.parse(currentPhotoPath));
}
}
21. Photo Capture & Display (cont’d)
camera.xml
<?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>
<LinearLayout xmlns:android=quot;http://schemas.android.com/apk/res/
androidquot;
android:orientation=quot;verticalquot;
android:layout_width=quot;fill_parentquot;
android:layout_height=quot;fill_parentquot;
android:background=quot;@drawable/bgquot;>
<SurfaceView android:id=quot;@+id/surfacequot;
android:layout_width=quot;fill_parentquot; android:layout_height=quot;10dipquot;
android:layout_weight=quot;1quot;>
</SurfaceView>
</LinearLayout>
ImageCaptureActivity:
preview setup photo capture
public void surfaceChanged(SurfaceHolder holder, int public void onPreviewFrame(byte[] data, Camera c) {
format, int w, int h)
{ if (!sizeSet)
Log.e(getClass().getSimpleName(), quot;surfaceChangedquot;); {
if (isPreviewRunning) { Log.i(getClass().getSimpleName(), quot;preview frame
camera.stopPreview(); RAW: quot; + data);
}
Camera.Parameters params = c.getParameters();
camera.setPreviewDisplay(holder); params.setPictureFormat(PixelFormat.JPEG);
camera.startPreview(); params.setPictureSize(PHOTO_WIDTH,PHOTO_HEIGHT);
isPreviewRunning = true; c.setParameters(params);
}
sizeSet = true;
}
}
31. PhoneGap.com
• PhoneGap is a development tool that allows web developers to take
advantage of the core features in the iPhone, Android, and Blackberry
SDK using JavaScript.