This document discusses various tips and best practices for developing mobile applications using Oracle Mobile Application Framework (MAF) that are not covered in developer guides. It covers topics like navigation, gestures, device interactions, push notifications and more. Real world examples are provided to illustrate how to handle issues like avoiding app crashes when taking pictures, following platform-specific gesture standards, and designing payloads for push notifications. The presenter encourages attendees to prioritize usability and consider all aspects of the mobile development lifecycle.
ADF Mobile: 10 Things you don't get from the developers guideLuc Bors
Real Life ADF Mobile: 10 things you don't learn from the devguide
Oracle ADF Mobile has been around for over a year by now. There is a great developer guide available for everybody who wants to create an ADF Mobile application. However, when you are building your first ADF Mobile application you will definitely run into issues that cannot be solved by reading the developer guide.
Think of performance issues when taking pictures with modern devices. Images can take up to 5 Megabytes. What can you do to create a grid like springboard ? These are all topics not covered by the developer guide or by any available ADF mobile training.
In this session you will learn solutions for these and more real life ADF Mobile issues.
Real Life MAF (2.2) Oracle Open World 2015Luc Bors
Oracle Mobile Application Framework enables you to create apps for both Apple iOS and Android. When you’re building your first Oracle Mobile Application Framework app, you’ll run into issues you can’t solve by reading the Oracle Applications Developer’s Guide, such as skinning, device interaction, creating custom springboards, and more. These issues can all be solved, but there are many different approaches. This session presents solutions to these and other real-life Oracle Mobile Application Framework challenges.
This is my presentation from ODTUG Mobile Day in Utrecht the Netherlands. It shows several examples / how to's regarding Oracle's mobile application Framework MAF
ADF Mobile: 10 Things you don't get from the developers guideLuc Bors
Real Life ADF Mobile: 10 things you don't learn from the devguide
Oracle ADF Mobile has been around for over a year by now. There is a great developer guide available for everybody who wants to create an ADF Mobile application. However, when you are building your first ADF Mobile application you will definitely run into issues that cannot be solved by reading the developer guide.
Think of performance issues when taking pictures with modern devices. Images can take up to 5 Megabytes. What can you do to create a grid like springboard ? These are all topics not covered by the developer guide or by any available ADF mobile training.
In this session you will learn solutions for these and more real life ADF Mobile issues.
Real Life MAF (2.2) Oracle Open World 2015Luc Bors
Oracle Mobile Application Framework enables you to create apps for both Apple iOS and Android. When you’re building your first Oracle Mobile Application Framework app, you’ll run into issues you can’t solve by reading the Oracle Applications Developer’s Guide, such as skinning, device interaction, creating custom springboards, and more. These issues can all be solved, but there are many different approaches. This session presents solutions to these and other real-life Oracle Mobile Application Framework challenges.
This is my presentation from ODTUG Mobile Day in Utrecht the Netherlands. It shows several examples / how to's regarding Oracle's mobile application Framework MAF
The Automation Summit is the leading peer-to-peer educational and networking event for IT automation professionals. As an attendee, you’ll learn why today’s automation innovations are critical for your operation. Plan to be part of this year’s knowledge exchange, April 27 at the Park Plaza, Bangalore.
It has been aimed to provide IT automation industry a unique platform to converge and showcase its capabilities and products. It also allows managers and engineers working in IT Automation projects to exchange, engage and explore new opportunities.
Learn basic architecture principles of React-Native, how it works and what exactly is the process of creating native mobile applications with JavaScript.
StrongLoop Node.js API Security & Customizationjguerrero999
API fine grained Authorization using Roles and ACLs in LoopBack
Connecting authentication to the front end
Third party and social (facebook, twitter) logins using OAuth2
Adding Node middleware for proxying, authentication, and traffic throttling
Supercharge Your Pages - New Ways to Extend the Confluence EditorAtlassian
The new Confluence editor brings never before seen capabilities to our developers to extend the editor. During this session, Klaus Ihlberg will explain how users use Confluence today and how to use this information and the new capabilities, to develop apps that supercharge Confluence pages.
6 Things You Didn't Know About Firebase AuthPeter Friese
There’s no doubt about it: many apps need some way of authenticating the user, but most developers don’t get overly excited by the prospect of implementing a login/sign-up screen.
In this talk, you will learn what Firebase Auth is, why you should use it, and - if this didn’t get you excited yet - 5 things you probably didn’t know about Firebase Auth before.
In particular, we’re going to look at
- How Firebase Auth works, and why you should use it
- How to let users sign in without even having to come up with a password
- What Anonymous Auth is all about and why you should care
- How to make signing in on iOS more magical
- How to integrate Firebase Auth and Sign in with Apple
Rapid Application Development with SwiftUI and FirebasePeter Friese
Firebase is Google's mobile development platform for Android, iOS, and the web. SwiftUI is Apple's user interface toolkit that lets developers design apps in a declarative way. In this session, we will bring the two together and take a look at how easy it is to develop a new application from scratch.
Slides for my talk at CocoaHeads Berlin (https://www.meetup.com/Cocoaheads-Berlin/events/266764473/)
The web has changed! Users spend more time on mobile than on desktops and they expect to have an amazing user experience on both platforms. APIs are the heart of the new web as the central point of access data, encapsulating logic and providing the same data and same features for desktops and mobiles.
In this talk, I will show you how in only 45 minutes we can create full REST API, with documentation and admin application build with React.
In this talk, Shubhra Kar from StrongLoop will cover best practices for securing APIs. He'll give an overview of how to integrate Passport, oAuth and social logins into your Node app. Also, presented will be user and login management, SSL termination, rate limiting and throttling plus reverse proxy.
Creating a Custom PowerApp Connector using Azure FunctionsMurray Fife
PowerApps and Flow are great, and there are a lot of standard connectors that we can use within our PowerApps and Flows. But sometimes we may want to do something just a little different where there is no connector out of the box.
This is when we may want to create a custom connector within PowerApps.
The next question is how do we write the function for the custom connector, and the answer to that is we can do it through Azure using Function Apps. These allow us to register a function service within Azure and then code our function online without even having to open up Visual Studio.
In this walkthrough we will step through how you can do this, and also introduce the Azure Function Apps to those of us that have never used them before.
Real Life ADF Mobile: 10 things you don't learn from the devguide
Oracle ADF Mobile has been around for over a year by now. There is a great developer guide available for everybody who wants to create an ADF Mobile application. However, when you are building your first ADF Mobile application you will definitely run into issues that cannot be solved by reading the developer guide.
Think of performance issues when taking pictures with modern devices. Images can take up to 5 Megabytes. What can you do to create a grid like springboard ? These are all topics not covered by the developer guide or by any available ADF mobile training.
In this session you will learn solutions for these and more real life ADF Mobile issues.
The Automation Summit is the leading peer-to-peer educational and networking event for IT automation professionals. As an attendee, you’ll learn why today’s automation innovations are critical for your operation. Plan to be part of this year’s knowledge exchange, April 27 at the Park Plaza, Bangalore.
It has been aimed to provide IT automation industry a unique platform to converge and showcase its capabilities and products. It also allows managers and engineers working in IT Automation projects to exchange, engage and explore new opportunities.
Learn basic architecture principles of React-Native, how it works and what exactly is the process of creating native mobile applications with JavaScript.
StrongLoop Node.js API Security & Customizationjguerrero999
API fine grained Authorization using Roles and ACLs in LoopBack
Connecting authentication to the front end
Third party and social (facebook, twitter) logins using OAuth2
Adding Node middleware for proxying, authentication, and traffic throttling
Supercharge Your Pages - New Ways to Extend the Confluence EditorAtlassian
The new Confluence editor brings never before seen capabilities to our developers to extend the editor. During this session, Klaus Ihlberg will explain how users use Confluence today and how to use this information and the new capabilities, to develop apps that supercharge Confluence pages.
6 Things You Didn't Know About Firebase AuthPeter Friese
There’s no doubt about it: many apps need some way of authenticating the user, but most developers don’t get overly excited by the prospect of implementing a login/sign-up screen.
In this talk, you will learn what Firebase Auth is, why you should use it, and - if this didn’t get you excited yet - 5 things you probably didn’t know about Firebase Auth before.
In particular, we’re going to look at
- How Firebase Auth works, and why you should use it
- How to let users sign in without even having to come up with a password
- What Anonymous Auth is all about and why you should care
- How to make signing in on iOS more magical
- How to integrate Firebase Auth and Sign in with Apple
Rapid Application Development with SwiftUI and FirebasePeter Friese
Firebase is Google's mobile development platform for Android, iOS, and the web. SwiftUI is Apple's user interface toolkit that lets developers design apps in a declarative way. In this session, we will bring the two together and take a look at how easy it is to develop a new application from scratch.
Slides for my talk at CocoaHeads Berlin (https://www.meetup.com/Cocoaheads-Berlin/events/266764473/)
The web has changed! Users spend more time on mobile than on desktops and they expect to have an amazing user experience on both platforms. APIs are the heart of the new web as the central point of access data, encapsulating logic and providing the same data and same features for desktops and mobiles.
In this talk, I will show you how in only 45 minutes we can create full REST API, with documentation and admin application build with React.
In this talk, Shubhra Kar from StrongLoop will cover best practices for securing APIs. He'll give an overview of how to integrate Passport, oAuth and social logins into your Node app. Also, presented will be user and login management, SSL termination, rate limiting and throttling plus reverse proxy.
Creating a Custom PowerApp Connector using Azure FunctionsMurray Fife
PowerApps and Flow are great, and there are a lot of standard connectors that we can use within our PowerApps and Flows. But sometimes we may want to do something just a little different where there is no connector out of the box.
This is when we may want to create a custom connector within PowerApps.
The next question is how do we write the function for the custom connector, and the answer to that is we can do it through Azure using Function Apps. These allow us to register a function service within Azure and then code our function online without even having to open up Visual Studio.
In this walkthrough we will step through how you can do this, and also introduce the Azure Function Apps to those of us that have never used them before.
Real Life ADF Mobile: 10 things you don't learn from the devguide
Oracle ADF Mobile has been around for over a year by now. There is a great developer guide available for everybody who wants to create an ADF Mobile application. However, when you are building your first ADF Mobile application you will definitely run into issues that cannot be solved by reading the developer guide.
Think of performance issues when taking pictures with modern devices. Images can take up to 5 Megabytes. What can you do to create a grid like springboard ? These are all topics not covered by the developer guide or by any available ADF mobile training.
In this session you will learn solutions for these and more real life ADF Mobile issues.
Slides of a talk of a seminars series I gave at WebRatio in January 2014.
I implemented many best practices and advices in this presentation in a generic app template available here: https://github.com/iivanoo/cordovaboilerplate
Let's explore all the features that Oracle Application Express Dynamic Actions have to offer.
Dynamic Actions (DA) in Oracle Application Express provide a declarative approach to using the JavaScript programming language in your browser. But, what does it mean to be able to use JavaScript in your browser? In this session, we'll cover the basics and then quickly move on to as many real life examples as we can. Whether you're not using DA yet, or you only use the most basic features, this session is sure to help you take your DA knowledge to the next level.
We'll cover the many options offered by Dynamic Actions. How to correctly specify a condition. The difference between True and False actions. How to use multiple Actions. Execution Scope. Plus many different real life examples that users can apply right away in their APEX projects.
Live slidedeck: http://slides.com/rimblas/practical-dynamic-actions-intro
There are many web-based or device-native techniques to create mobile applications. To support multiple
devices, such as iPhones, iPads, and Android phones and tablets, an application needs to be developed several
times, using multiple tools, languages, and platforms. This dramatically lowers the ROI. Oracle JDeveloper and
Oracle Application Development Framework (Oracle ADF) allow you to create one single application, based on
HTML5, that runs on multiple mobile device platforms. This session demonstrates how to create a mobile
application that can be used 'on the road' to perform relevant tasks, no matter what device is used. You will learn
best practices on how to connect with server side datasources and the on device database. Finally you will learn
how to integrate with device services such as calendar and camera.
ADF Mobile : Best Practices for Developing Applications with Oracle ADF MobileLuc Bors
Presentation on ADF Mobile for KScope13. Best Practices for Developing Applications with Oracle ADF Mobile, based on the differences between vanilla ADF and ADF Mobile
ADF and JavaScript - AMIS SIG, July 2017Lucas Jellema
a guided tour around the use of JavaScript in ADF 12c rich web application. ADF is a rich web client framework that internally uses plenty of JavaScript to power rich UI components, partial page rendering and other aspects of the user experience. Although ADF is largely declarative and focused mainly on the (Java) server side for creating the user interface, there is a lot to be gained with ADF Faces from using JavaScript. A richer, faster and leaner user experience can be achieved, functionality is sometimes much harder or even virtually impossible to implement with only server side programming, with smart JavaScript we may lower the load on the server thereby improving the scalability of the application, we can leverage the fairly recent HTML5 APIs for client side persistence, file upload, etc. and through JavaScript we are able to embed rich 3rd party components in our ADF Faces UI – from Google Maps to advanced visualization (beyond ADF DVT).
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.
Talk to me Goose: Going beyond your regular ChatbotLuc Bors
Session from oracle code one 2018: After his first steps into robotics and IoT, this session’s speaker decided to take it one step further: a more realistic robot that knows who you are and responds to your questions. Using chatbot technology and voice and face recognition, this robot can become a real add-on to your daily life. In this session, you will learn how the speaker extended an off-the-shelf solution with additional cloud technology to make these things work
There is a growing demand to access enterprise data from mobile devices. Usually to support multiple devices, multiple applications need to be developed using multiple languages. Oracle Mobile Application Framework allows you to create one single application, that runs on multiple mobile device platforms based on a single code base. Oracle MAF leverages the existing development skills of both Oracle ADF and Java developers and enabled the development team of BCPRA (British Columbia Provincial Renal Agency) to create PROMIS Lite.
PROMIS (Patient Records and Outcome Management Information System) Lite gives authorized users, such as nurses, doctors and surgeons mobile access to a subset of patient information such as medication and lab test results. In this session you will learn how this app evolved from a brainwave at the office to a real on device app. You will see the entire process, from business case to requirements and from development to device. The result is amazing as you will learn from the demo at the end of this session.
When working with enterprise applications, you want to have the same user experience that you know from for instance office applications and browsers. People know how to use the features that can be found in browsers such as bookmarking, favorites, and working with tabs. The search mechanism provided by Google, that uses suggestions based on the text typed by the user, is so common that people expect this in every application. And there are more of these UI patterns. In this session, you will learn how to implement some of the common UI patterns in your ADF application.
Oracle ADF is a very powerful framework for building enterprise applications. The framework, however, has no built-in solutions for reporting. In this session, you will learn how to fill this gap by using open source reporting solutions and solutions provided by Oracle.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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.
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!
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
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.
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.
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/
1. Real Life
Oracle Mobile Application Framework
Things that you don't get from the developer guide
Oracle Open World, San Francisco, September 28th 2014
2. Who Am I
• Luc Bors
• Principal Consultant
• AMIS, Netherlands
• Friends of Oracle & Java
• Oracle Partner
• Oracle Specialized Partner of
the year 2014
Middleware - EMEA
3. Before we start
• Let’s look at some basic terms related to MAF and Mobile
– Springboard
– Gestures
– Feature
– Push Notifications
4. MAF Architecture Overview
Device
Native
Container
SQLite
Database
Java
VM
Configuration
Server
Business
Logic
Model
JDBC
Apache
Cordova
SQLite
Web
View
Server
HTML
HTML5
and
Javascript
Presentation
AMX
View
Local
HTML
Controller
Push
Handler
Server
Generated
HTML
APN/GCM
Push
Services
SOAP
and
REST
Services
Device
Services
App
Config
Credential
Management
SSO
and
Access
Control
5. Todays Topics
• Navigation and Application Control
• Device Interaction
• Gestures
• Push Notifications
9. Springboard Toggle
• Default button on bottom left
• Custom button such as Top Right
• Create this yourself
• Note: No show / hide available
• Note: No “isSpringboard” visible property available.
• You need to create this yourself
<amx:commandLink
actionListener="#{bindings.gotoSpringboard.execute}"
id="cl1” styleClass="custom-springboard-link”>
<amx:image inlineStyle="width:30px;height:30px”
source="/images/springboard.png" id="i1"/>
</amx:commandLink>
10. Feature Archives
• Feature Archives can be reused
• Deploy MAF app as FAR
• Add to ‘Consumer’
• Use features from FAR in other apps
11. Features
can
be
taskflows
• Can contain multiple activities
• Navigation between activities is
possible
• Information exchange is possible
12. List to Detail
• Navigate from List to Detail
• If List and Detail use the same iterator, correct details will show up
automatically
List View
1 Name…..
2 Name…..
3 Name…..
4 Name…..
Detail View
#3.
Name
State
Country
Example: If you select List item #3,
and that will become the current item
in the iterator the list is based on.
14. List to Detail (+)
• What if you don’t want to GET all detail data for every List item ?
• Simply use an (extra) service call to get the detail Data
Service
call
List View
1 Name…..
2 Name…..
3 Name…..
4 Name…..
Detail View
#3.
Name
State
Country
Image:
Example: If you select List item #3, and that will become
the current item in the iterator the list is based on. You can
use the Identifier of that list item to call the service
17. Programmatic Navigation
• Drawback
– No access to setPropertyListener
• Solution if you need that functionality:
– Set the value in java Code
ValueExpression ve ="
AdfmfJavaUtilities.getValueExpression("
"#{pageFlowScope.myBean.currentStadium}”"
, String.class);"
"
ve.setValue(AdfmfJavaUtilities.getAdfELContext()"
, getCurrentStadium());"
18. Todays Topics
• Navigation and Application Control
• Device Interaction
• Gestures
• Push Notifications
19. All day example
• Twitter or Whatsapp and images
• What if you embed an image in a message ?
• Two options:
• Use exisiting image from gallery or
• Create a new one with camera.
• Where is the catch ?
21. Camera interaction (from Java)
• Take a picture ……………
import oracle.adf.model.datacontrols.device;
DeviceManagerFactory.getDeviceManager().getPicture(
100,
DeviceManager.CAMERA_DESTINATIONTYPE_FILE_URI,
DeviceManager.CAMERA_SOURCETYPE_CAMERA, false,
DeviceManager.CAMERA_ENCODINGTYPE_PNG,
200,
200);
• …… or get one from the Library
DeviceManager.CAMERA_SOURCETYPE_PHOTOLIBRARY
22. Smart Camera Interaction
• Or how to prevent your app from crashing …
• DESTINATIONTYPE_DATA_URL you will get the image as base64 encoded
string
• Camera’s are very good and picture quality is amazing.
– Encoding such images as base64 causes memory issues
• Don’t blow up your app.
– iOS you should set quality parameter to a value less then 50 to avoid memory
issues
– On Android out-of-memory can be caused with default image settings. Make
image smaller by setting targetWidth and targetHeight
• Small sized images can be uploaded using web services.
23. Even smarter…
• Determine network connection
#{hardware.networkStatus}
Combined with
#{device.os}
To tweak size and quality parameters based on connectivity
• Always be aware of the other side…..
– Does the recipient have the same Connectivity….
24. Todays Topics
• Navigation and Application Control
• Device Interaction
• Gestures
• Push Notifications
25. Gestures ( and UX )
• Gestures can be
used from:
– Buttons
– Links
– List Item
<amx:showPopupBehavior popupid="pop1"
type="tapHold“ />
26. Gesture Abuse
• .. Or how to confuse your app user…
<amx:showPopupBehavior popupid="pop1"
type=”swipeLeft“ />
<amx:actionListener binding="#{mybean.deleteRow}"
type=”swipeDown"/>
27. What Apple did (iOS6 à iOS7)
• They changed delete swipe from right to left…….
• I rest my case……
• Make sure to be aware
of the right standard:
– For Device
– For OS
– For version
30. Ingredients
• A (Web) service and datacontrol
• A Page with Listview
• An ActionListener with type
SwipeDown
• Smart Java Code to call service
(conditionally)
<amx:listView var="row”"
value="#{bindings.allLocations.collectionModel}" "
fetchSize="#{bindings.allLocations.rangeSize}”"
id="lv1"> "
<amx:listItem id="li1"> "
<amx:actionListener type="swipeDown” "
binding="#{pageFlowScope.locationsBackingBean.checkForUpdates}”>"
"
32. Todays Topics
• Navigation and Application Control
• Device Interaction
• Gestures
• Push Notifications
33. Push Notifications
• Subscribe to GCM
• Receive token
• Register with Enterprise app
• Enterprise app Pushes message to
GCM
• GCM delegates message to
device(s)
34. Working with Payload
• “Pusher” knows the mobile app
• “Pusher” knows how app can respond
• App knows “ Pusher”
• App knows what to expect from “Pusher”
• “Pusher” pushes info to determine the Feature and optionally a Key
• App Navigates to correct Feature based on this information and calls
Service with the key to fetch information
36. In the MAF App
onMessage Deserialize
Payload
PushNotification Listener
Call Feature
37. When Notified (onMessage)
• Application Push Notification Listener
• onMessage(Event event)
• Deserialize Payload and work with it
PayloadServiceResponse serviceResponse =
(PayloadServiceResponse)jsonHelper.fromJSON(
PayloadServiceResponse.class, event.getPayload());
ValueExpression notificationPayloadBinding =
AdfmfJavaUtilities.getValueExpression(
"#{applicationScope.notificationSessionId}", String.class);
notificationPayloadBinding.setValue(
AdfmfJavaUtilities.getAdfELContext(),
serviceResponse.getSessionId());
ValueExpression ve =
AdfmfJavaUtilities.getValueExpression(
"#{applicationScope.notified}", Boolean.class);
ve.setValue(AdfmfJavaUtilities.getAdfELContext(), Boolean.TRUE);
38. …. Finally …
• Change badge and go to the Feature.
// also, lets decrease the application icon badge by one
int currentBadge =
AdfmfContainerUtilities.getApplicationIconBadgeNumber();
if (currentBadge > 0) {
AdfmfContainerUtilities.setApplicationIconBadgeNumber(
currentBadge - 1);
}
AdfmfContainerUtilities.gotoFeature(
"com.tamcapp.mobilebook.ses.ConferenceSessions");
39. In the MAF Feature
FeatureLifeCycle Listener
onActivate()
Do
Something
Navigate
40. In the Feature
• Feature LifeCycle Listener
– In the onActivate() method respond to notification
if(notified.booleanValue()){
AdfmfContainerUtilities.invokeContainerJavaScriptFunction(
AdfmfJavaUtilities.getFeatureName()
,"adf.mf.api.amx.doNavigation”
,new Object[] { "featureActivated" });
}
41. The taskflow behind the scenes
• Wildcard activity
– featureActivated
• To Router
– Determine if Notified
– If so, handle the Notification
• HandleNotification
– Call Service to get info, or do
whatever is needed to handle the
notification
42. Summary
• Don’t take anything for granted
• Start simple, renew fast.
• (Re-) Consider default behavior
• Users First !!!!
• Think about proper Use cases for every thing you do
• Use the wiki:
– https://wikis.oracle.com/display/ADFMobileDesign/Home
• Tip: Read a good MAF book and go to many session during #oow14
43. Book launch
ISBN no’s: 0071830855 / 9780071830850
Regular price: $60
Oracle OpenWorld Bookstore:
Moscone South, Upper Lobby.
20% discount for OOW visitors
Meet the author:
Meet me in the Oracle
OpenWorld bookstore on
Monday from 1 to 1:30
p.m.