This document discusses native Android development using Spring technologies. It introduces Spring for Android and Spring Mobile, with Spring for Android providing support for building native Android apps using Spring and Spring Mobile focusing on mobile web apps. It then covers using the Spring RestTemplate for making REST calls in Android apps, demonstrating a basic example. Finally, it discusses additional Spring for Android features and resources for native Android development with Spring.
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
Java EE 7 provides a strong foundation for developing the back end for your HTML5 mobile applications. This heavily code-driven session shows you how you can effectively utilize Java EE 7 as a back end for your Apache Cordova mobile applications. The session demonstrates Java EE 7 technologies such as JAX-RS 2.0, WebSocket, JSON-P, CDI, and Bean Validation. It provides an overview of the basics of Apache Cordova as well as the tooling support added in NetBeans 8. The session also demonstrates an integrated approach to rapidly developing HTML5 mobile applications with Java EE 7 and NetBeans and concludes with best practices and pitfalls.
Intro to Ionic for Building Hybrid Mobile ApplicationsSasha dos Santos
Ionic is a free framework that allows users to easily build hybrid mobile applications for iOS and Android using Angular and Cordova. Ionic provides a command line interface, CSS classes, reusable components (directives) and various tools for testing and development. In this session, you'll get a birdseye view of what Ionic has to offer, as well as guidelines for building your first Ionic app, including the use of tools such as Yeoman, Bower and Grunt.
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
Java EE 7 provides a strong foundation for developing the back end for your HTML5 mobile applications. This heavily code-driven session shows you how you can effectively utilize Java EE 7 as a back end for your Apache Cordova mobile applications. The session demonstrates Java EE 7 technologies such as JAX-RS 2.0, WebSocket, JSON-P, CDI, and Bean Validation. It provides an overview of the basics of Apache Cordova as well as the tooling support added in NetBeans 8. The session also demonstrates an integrated approach to rapidly developing HTML5 mobile applications with Java EE 7 and NetBeans and concludes with best practices and pitfalls.
Intro to Ionic for Building Hybrid Mobile ApplicationsSasha dos Santos
Ionic is a free framework that allows users to easily build hybrid mobile applications for iOS and Android using Angular and Cordova. Ionic provides a command line interface, CSS classes, reusable components (directives) and various tools for testing and development. In this session, you'll get a birdseye view of what Ionic has to offer, as well as guidelines for building your first Ionic app, including the use of tools such as Yeoman, Bower and Grunt.
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentJustin James
It has never been easier to build hybrid applications by using the Ionic Framework with technology that you already know and love such as AngularJS and Html 5. You will learn to love mobile development again.
> Mobile world
> Hybrid Apps vs Native Apps
> Cordova and Its Architecture
> What and Why IONIC ?
> What Techniologies IONIC does it use ?
> Ionicon and Its usage
> IONIC CLI
> IONIC and Packed Android Project File Structure.
> Example To Do List
Rapid mobile development with Ionic framework - Voxxdays Ticino 2015Alessio Delmonti
Meet Ionic, the best tool for faster go-to market strategy. Nowadays, developing mobile applications is about both technology and development time/cost. It's a hot topic for large companies and small startups who need to go to market quickly and cost-effectively. Ionic is the perfect tool for the rapid cross-platform development of high-quality mobile apps.
Selendroid is an open source test automation framework which drives off the UI of Android native and hybrid applications and the mobile web. Tests are written using the Selenium 2 client API. For testing no modification of app under test is required in order to automate it.
This presentation demonstrates to the audience how easy it is to do mobile test automation. It shows how Selendroid can be used to test native and hybrid Android apps and how the Selenium Grid can be used for parallel testing on multiple devices. Advances topics like extending Selendroid itself at runtime and doing cross platform tests will be covered as well.
Most of the major internet companies have now declared themselves to be mobile first. Smartphones have become ubiquitous throughout the development world. But mobile development is fraught with challenges. There are more Android devices than iOS, but iOS users tend to spend more money. If you build your app for one, it is a complete re-write for the other. You may have heard of Cordova/PhoneGap, but the apps tend to be somewhat clunky looking.
Enter the Ionic Framework, a cross platform framework which combines PhoneGap with AngularJS and super fast CSS3 to make apps which perform at near native levels.
Ionic Mobile Applications - Hybrid Mobile Applications Without CompromisesJacob Friesen
A presentation on Ionic Mobile Applications presented at Boca JS: http://www.meetup.com/Boca-JS/events/227150049/.
Traditionally, building Hybrid Mobile Apps with JavaScript (or other languages) was a middle ground between Mobile websites and Mobile Applications. Generally providing a more native like experience than websites, but with a reduced user experience compared to applications due to issues like slow animations or limited mobile OS access. The Ionic framework was created to provide hybrid development that does not compromise; matching native user experience while still allowing tools and techniques used on websites.
Hybrid mobile app development slide with Ionic Framework. This is a subset of slides presented during my Ionic Mobile Development course.
In addition to the items in this slide, the course will cover Ionic application Architecture, Important AngularJS principles for Ionic development, Native vs Hybrid and code signing to Google Play and AppStore.
It is a hands-on based approach training where 80% of the course (normally from 10 am to 5 pm) will be guided lab activity or mini project activity.
jQuery Conference Boston 2011 CouchAppsBradley Holt
CouchApps are web applications built using CouchDB, JavaScript, and HTML5. CouchDB is a document-oriented database that stores JSON documents, has a RESTful HTTP API, and is queried using MapReduce views. This talk will answer your fundamental questions about CouchDB and will cover the basics of building CouchApps using jQuery and various jQuery plugins.
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.
Experiences building apps with React Native @DomCode 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 1.5 years ago, React Native continuously enjoys a tremendous traction. In 2015 React got popular, I believe 2017 will be the year of React Native. I followed the development since the start and now built several React Native apps. During my talk I like to introduce the library, show useful tooling and give practical advice for building React Native apps.
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentJustin James
It has never been easier to build hybrid applications by using the Ionic Framework with technology that you already know and love such as AngularJS and Html 5. You will learn to love mobile development again.
> Mobile world
> Hybrid Apps vs Native Apps
> Cordova and Its Architecture
> What and Why IONIC ?
> What Techniologies IONIC does it use ?
> Ionicon and Its usage
> IONIC CLI
> IONIC and Packed Android Project File Structure.
> Example To Do List
Rapid mobile development with Ionic framework - Voxxdays Ticino 2015Alessio Delmonti
Meet Ionic, the best tool for faster go-to market strategy. Nowadays, developing mobile applications is about both technology and development time/cost. It's a hot topic for large companies and small startups who need to go to market quickly and cost-effectively. Ionic is the perfect tool for the rapid cross-platform development of high-quality mobile apps.
Selendroid is an open source test automation framework which drives off the UI of Android native and hybrid applications and the mobile web. Tests are written using the Selenium 2 client API. For testing no modification of app under test is required in order to automate it.
This presentation demonstrates to the audience how easy it is to do mobile test automation. It shows how Selendroid can be used to test native and hybrid Android apps and how the Selenium Grid can be used for parallel testing on multiple devices. Advances topics like extending Selendroid itself at runtime and doing cross platform tests will be covered as well.
Most of the major internet companies have now declared themselves to be mobile first. Smartphones have become ubiquitous throughout the development world. But mobile development is fraught with challenges. There are more Android devices than iOS, but iOS users tend to spend more money. If you build your app for one, it is a complete re-write for the other. You may have heard of Cordova/PhoneGap, but the apps tend to be somewhat clunky looking.
Enter the Ionic Framework, a cross platform framework which combines PhoneGap with AngularJS and super fast CSS3 to make apps which perform at near native levels.
Ionic Mobile Applications - Hybrid Mobile Applications Without CompromisesJacob Friesen
A presentation on Ionic Mobile Applications presented at Boca JS: http://www.meetup.com/Boca-JS/events/227150049/.
Traditionally, building Hybrid Mobile Apps with JavaScript (or other languages) was a middle ground between Mobile websites and Mobile Applications. Generally providing a more native like experience than websites, but with a reduced user experience compared to applications due to issues like slow animations or limited mobile OS access. The Ionic framework was created to provide hybrid development that does not compromise; matching native user experience while still allowing tools and techniques used on websites.
Hybrid mobile app development slide with Ionic Framework. This is a subset of slides presented during my Ionic Mobile Development course.
In addition to the items in this slide, the course will cover Ionic application Architecture, Important AngularJS principles for Ionic development, Native vs Hybrid and code signing to Google Play and AppStore.
It is a hands-on based approach training where 80% of the course (normally from 10 am to 5 pm) will be guided lab activity or mini project activity.
jQuery Conference Boston 2011 CouchAppsBradley Holt
CouchApps are web applications built using CouchDB, JavaScript, and HTML5. CouchDB is a document-oriented database that stores JSON documents, has a RESTful HTTP API, and is queried using MapReduce views. This talk will answer your fundamental questions about CouchDB and will cover the basics of building CouchApps using jQuery and various jQuery plugins.
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.
Experiences building apps with React Native @DomCode 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 1.5 years ago, React Native continuously enjoys a tremendous traction. In 2015 React got popular, I believe 2017 will be the year of React Native. I followed the development since the start and now built several React Native apps. During my talk I like to introduce the library, show useful tooling and give practical advice for building React Native apps.
This Presentation will give u information about Android :
1. Working with resources- String resource,
2. Color resource,
3. Array resource Android layouts and views Handling user interaction events Grouping,
4. accessing of resources Localization of Resources Handling runtime changes of resources Designing your GUI
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/
Overview for the possibilities when it comes to developing an application for the android platform. The slides start with covering the native option, continutes with covering the hybrid option and concludes with comparing between the two.
More information about the Android course I deliver can be found at android.course.lifemichael.com
Hybrid applications are web applications (or web pages) in the native browser, such as
UIWebView in iOS and WebView in Android (not Safari or Chrome). Hybrid Mobile
Applications are Commonly Developed using CSS, HTML & Javascript.
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.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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.
2. Introduction
§ What are the purposes of the Spring for Android
and Spring Mobile projects?
• Spring for Android provides support for building native
Android applications utilizing Spring technologies, where
applicable.
• In contrast, Spring Mobile provides support for building
mobile web applications.
CONFIDENTIAL
2
3. Spring for Android
• Android Overview
• Define the Problem
• Review of REST
• Basic Rest Template Example
• Rest Template Overview
• Maven Can Help
• Showcase and Demos
• Questions
CONFIDENTIAL
3
4. Android Adoption
§ Year-on-year growth rate of more than 250%
§ 850,000 new Android devices are activated each day
§ Over 300 million devices around the world
§ Over 450,000 apps available in Google Play
§ Over 1 billion app downloads per month
http://googlemobile.blogspot.com/2012/02/androidmobile-world-congress-its-all.html
CONFIDENTIAL
4
6. Android is Familiar
Applications are written in Java!
(well, sort of)
CONFIDENTIAL
6
7. But not that Familiar...
§ Class Files
• Android apps are compiled to class files.
§ DEX Format
• Classes are compiled into the Dalvik Executable (DEX) format.
• DEX format is required to run on the Dalvik Virtual Machine.
§ Dalvik VM
• Not a true Java VM, because it does not operate on Java byte code.
• Based on a subset of the Apache Harmony project.
• Many of the classes from Java SE are available, but not all.
CONFIDENTIAL
7
8. Isolation of an App
§ Unique Linux User ID
• Android OS assigns each app a unique Linux user ID.
§ Process Isolation
• Within the VM, each app runs in its own Linux process.
§ Managed Lifecycle
• The system manages the starting and stopping.
CONFIDENTIAL
8
9. Components of an Android App
§ Activities - An activity represents a single screen with a
user interface.
§ Services - A service is a component that runs in the
background to perform long-running operations or to
perform work for remote processes.
§ Content Providers - A content provider manages a
shared set of application data.
§ Broadcast Receivers - A broadcast receiver is a
component that responds to system-wide broadcast
announcements.
http://developer.android.com/guide/topics/fundamentals.html
CONFIDENTIAL
9
10. Android Manifest
§ contains the permissions requested by the app
§ Lists all of the components of an app
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".HelloAndroidActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
CONFIDENTIAL
10
11. A simple Activity
package org.springsource;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
CONFIDENTIAL
11
12. STS and the ADT Plugin for Eclipse
HelloAndroid Demo
http://www.springsource.org/springsource-tool-suite-download
http://developer.android.com/sdk/eclipse-adt.html
CONFIDENTIAL
12
13. How can Maven help?
§ Android4Maven
• This project compiles android.jar from source and pulls out
source and resource files to replicate android.jar in the SDK
• http://sourceforge.net/projects/android4maven/
§ Maven Android SDK Deployer
• If you need to use Google maps, then you have to go this
route
• https://github.com/mosabua/maven-android-sdk-deployer
§ Android Maven Plugin
• Provides support for Maven dependency management within
Android projects
• http://code.google.com/p/maven-android-plugin/
CONFIDENTIAL
13
15. Maven Commands
Build your Android App
$ mvn clean install
Start the Emulator
$ mvn android:emulator-start
Deploy the app to the emulator
$ mvn android:deploy
Run the app
$ mvn android:run
http://maven-android-plugin-m2site.googlecode.com/svn/plugin-info.html
CONFIDENTIAL
15
17. m2eclipse Support
§ Android Configurator for M2E Maven Integration for Eclipse
• An Eclipse plugin that adds support for integrating m2eclipse, Android
Developer Tools, and the Android Maven Plugin
• http://rgladwell.github.com/m2e-android/
§ Maven Android archetypes
• This project provides several Maven archetypes for Android. These
archetypes allow you to quickly bootstrap a Maven project to develop an
android application.
• https://github.com/akquinet/android-archetypes
CONFIDENTIAL
17
20. What problem are we trying to solve?
§ Concerns
• REST has become a popular choice for architecting both public
and private web services
• The Android runtime provides HTTP clients capable of making
HTTP connections and requests, but it does not have a fully
featured REST client
§ Spring for Android Solution
• The goal of Spring for Android Rest Template is to provide an
easy to use, and functional REST client that supports marshaling
objects from XML and JSON.
CONFIDENTIAL
20
21. REST
§ Origin
• The term Representational State Transfer was introduced and
defined in 2000 by Roy Fielding in his doctoral dissertation.
§ His paper suggests these four design principles:
• Use HTTP methods explicitly.
• POST, GET, PUT, DELETE
• CRUD operations can be mapped to these existing methods
• Be stateless.
• State dependencies limit or restrict scalability
• Expose directory structure-like URIs.
• URI’s should be easily understood
• Transfer XML, JavaScript Object Notation (JSON), or both.
• Use XML or JSON to represent data objects or attributes
CONFIDENTIAL
21
22. Basic Rest Template Example
§ Google search example
RestTemplate restTemplate = new RestTemplate();
String url =
"https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q={query}";
String result = restTemplate.getForObject(url, String.class, "SpringSource");
§ Multiple parameters example
RestTemplate restTemplate = new RestTemplate();
String url = "http://example.com/hotels/{hotel}/bookings/{booking}";
String result = restTemplate.getForObject(url, String.class, "42", “21”);
CONFIDENTIAL
22
24. Spring for Android Rest Template
§ Based on SpringFramework
• Originated as a fork of RestTemplate from SpringFramework.
• Modifications were made to support Android.
§ RestTemplate class is the heart of the library
• Entry points for the six main HTTP methods
• DELETE - delete(...)
• GET - getForObject(...)
• HEAD - headForHeaders(...)
• OPTIONS - optionsForAllow(...)
• POST - postForLocation(...)
• PUT - put(...)
• any HTTP operation - exchange(...) and execute(...)
CONFIDENTIAL
24
25. HTTP Clients
§ SimpleClientHttpRequestFactory
• Delegates to the standard J2SE facilities
§ HttpComponentsClientHttpRequestFactory
• Delegates to the native HttpComponents HttpClient
§ CommonsClientHttpRequestFactory (deprecated)
• Delegates to the Commons HttpClient which is not native to Android
CONFIDENTIAL
25
26. Message Converters
§ MappingJacksonHttpMessageConverter
• object to JSON marshaling supported via the Jackson JSON Processor
§ SimpleXmlHttpMessageConverter
• object to XML marshaling supported via the Simple XML Serializer
§ SyndFeedHttpMessageConverter
• RSS and Atom feeds supported via the Android ROME Feed Reader
CONFIDENTIAL
26
27. Spring for Android Showcase
§ Examples
• HTTP GET
• JSON
• XML
• HTTP GET with Parameters
• JSON
• XML
• HTTP POST
• String
• JSON
• XML
• MultiValueMap
• RSS
• ATOM
CONFIDENTIAL
27
29. Spring Social on Android
§ What is Spring Social?
• Spring Social is an extension of the Spring Framework that allows you to
connect your applications with Software-as-a-Service (SaaS) providers such as
Facebook and Twitter.
§ How does it relate to Spring for Android?
• Utilizes RestTemplate to make RESTful requests to providers.
§ How can Spring for Android help?
• Auth library in Spring for Android provides a SQLiteConnectionRepository for
use with Spring Social.
CONFIDENTIAL
29