An introduction to the Android platform and how to develop for it with Java and the provided tools. Also covers best practices and some resources to aid in the development process.
HTML5 or Android for Mobile Development?Reto Meier
Android apps or the mobile web? It's often a hard choice when deciding where to invest your mobile development resources. While the mobile web continues to grow, apps and app stores are incredibly popular. We will present both perspectives and offer some suggestions for making the most of each platform.
Apresentação em slide com os conceitos básicos de polímeros, monomeros e classificação. Com exemplos sucintos do dia-a-dia. Pode ser utilizado como aula para o Ensino Médio ou para estudar o básico para provas escolares.
HTML5 or Android for Mobile Development?Reto Meier
Android apps or the mobile web? It's often a hard choice when deciding where to invest your mobile development resources. While the mobile web continues to grow, apps and app stores are incredibly popular. We will present both perspectives and offer some suggestions for making the most of each platform.
Apresentação em slide com os conceitos básicos de polímeros, monomeros e classificação. Com exemplos sucintos do dia-a-dia. Pode ser utilizado como aula para o Ensino Médio ou para estudar o básico para provas escolares.
ESTA ASIGNATURA PRETENDE QUE LOS ALUMNOS ADQUIERAN LOS CONOCIMIENTOS GENERALES RELACIONADOS CON LA PRÁCTICA DE LA INGENIERÍA, AL MISMO TIEMPO; SE PRETENDE FORMAR HABILIDADES QUE PERMITAN A LOS FUTUROS INGENIEROS PARTICIPAR ACTIVAMENTE EN LA RESOLUCIÓN DE PROBLEMAS EN EL ÁREA DE ALIMENTOS. POR OTRO LADO, SE PRETENDE QUE LOS ALUMNOS Y LAS ALUMNAS SE RELACIONEN DIRECTAMENTE CON LA CARRERA, LA CUAL SE DESARROLLARÁ DURANTE LOS 5 AÑOS.
jQuery Mobile Deep Dive shows you how to create single page web apps that look and behave like native ones. We use JavaScript and open source libraries like jQuery, underscore, and backbone. And explore advanced topics like unit testing and performance optimization.
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating DrupalAcquia
The “Making the Switch to Drupal series” will provide an overview of what you need to know when considering and adopting Drupal. In Part 1, we will guide busy managers through what they need to consider when evaluating Drupal.
We know that choosing any web development technology represents a significant investment of resources. Decision makers can spend weeks and months comparing options and deliberating about the best direction. We will use a combination of case studies and demonstrations to explain how Drupal works, so you can see first hand how it powers some of the most visited websites online.
In Part 1 of this webinar series, you will learn:
• Benefits of the open source community
• Comparison of Drupal to other systems
• Ease of Customization of branding and functionality
• Managing content layout and design in Drupal
• About common features and functionality of Drupal
ESTA ASIGNATURA PRETENDE QUE LOS ALUMNOS ADQUIERAN LOS CONOCIMIENTOS GENERALES RELACIONADOS CON LA PRÁCTICA DE LA INGENIERÍA, AL MISMO TIEMPO; SE PRETENDE FORMAR HABILIDADES QUE PERMITAN A LOS FUTUROS INGENIEROS PARTICIPAR ACTIVAMENTE EN LA RESOLUCIÓN DE PROBLEMAS EN EL ÁREA DE ALIMENTOS. POR OTRO LADO, SE PRETENDE QUE LOS ALUMNOS Y LAS ALUMNAS SE RELACIONEN DIRECTAMENTE CON LA CARRERA, LA CUAL SE DESARROLLARÁ DURANTE LOS 5 AÑOS.
jQuery Mobile Deep Dive shows you how to create single page web apps that look and behave like native ones. We use JavaScript and open source libraries like jQuery, underscore, and backbone. And explore advanced topics like unit testing and performance optimization.
Making the Switch, Part 1: Top 5 Things to Consider When Evaluating DrupalAcquia
The “Making the Switch to Drupal series” will provide an overview of what you need to know when considering and adopting Drupal. In Part 1, we will guide busy managers through what they need to consider when evaluating Drupal.
We know that choosing any web development technology represents a significant investment of resources. Decision makers can spend weeks and months comparing options and deliberating about the best direction. We will use a combination of case studies and demonstrations to explain how Drupal works, so you can see first hand how it powers some of the most visited websites online.
In Part 1 of this webinar series, you will learn:
• Benefits of the open source community
• Comparison of Drupal to other systems
• Ease of Customization of branding and functionality
• Managing content layout and design in Drupal
• About common features and functionality of Drupal
Backbone.js helps structure you javascript application code in a scalable way.
In this keynote I demonstrate how to use it in a simple walk-through example, and discuss the advantages of using an MVC framework.
Atlanta JUG - Integrating Spring Batch and Spring IntegrationGunnar Hillert
This talk is for everyone who wants to efficiently use Spring Batch and Spring Integration together. Users of Spring Batch often have the requirements to interact with other systems, to schedule the periodic execution Batch jobs and to monitor the execution of Batch jobs. Conversely, Spring Integration users periodically have Big Data processing requirements, be it for example the handling of large traditional batch files or the execution of Apache Hadoop jobs. For these scenarios, Spring Batch is the ideal solution. This session will introduce Spring Batch Integration, a project that provides support to easily tie Spring Batch and Spring Integration together. We will cover the following scenarios:
Launch Batch Jobs through Spring Integration Messages
Generate Informational Messages
Externalize Batch Process Execution using Spring Integration
Create Big Data Pipelines with Spring Batch and Spring Integration
Video and slides synchronized, mp3 and slide download available at http://bit.ly/YUUZug.
Graham Lee discusses strategies and tools for testing iOS apps with a view to uncovering hidden security and usability issues. Filmed at qconlondon.com.
Graham Lee is a security consultant and contract developer, specializing in iOS and Mac OS X application development. He is the author of "Professional Cocoa Application Security", published by Wiley in 2010 and described as a "must read" by someone who isn't even related to him. Graham lives and works in Oxford, UK. Twitter: @iamleeg
You've probably heard of PhoneGap, the free, open source framework for creating mobile apps using standard web programming, but maybe you're skeptical. You probably have a lot of questions. How easy is it to create an app with PhoneGap? Can I convert my web site to a mobile app? Will the app be too slow to use?
In the session I will, with nothing up my sleeves, convert a mobile web site into a PhoneGap app for both iOS and Android. I will take advantage of both device and HTML5 features. I will show solutions to the performance challenges PhoneGap apps sometimes suffer from. I will show to structure your web site to make it easy to convert to a device app.
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
Announcing the new 2.0 version of Codolex, the low code development solution for Delphi developers. This new version includes many enhancements and fixes, as well as a very exciting new pricing model. Check out the slides to learn more about the benefits of Codolex and why you need to elevate your Delphi development today.
Smart Contracts - The Blockchain Beyond BitcoinJim McKeeth
A smart contract is a program that runs on the blockchain. This session is a technical look at the blockchain and smart contracts from a programmer's perspective. We will start with the basics of the blockchain and work our way up through the EVM and smart contract standards. Then we will discuss alternative blockchains and the options they provide. While smart contracts are the basis of NFTs and Distributed Finance (DiFi), this session's focus is on technology and will explore many potential uses, including an introduction to Solidity and other smart contract programming languages.
Presented at the Boise Software Developers Group on September 12th, 2023
Rapid Prototyping Mobile IoT Projects with Arduino and Open HardwareJim McKeeth
Thanks to the rise of the Arduino and open source hardware it is much easier to prototype and built smart devices enabling the Internet of Things. Arduino comes with a useful Integrated Developers Environment (IDE) using Processing, C and C++ programming languages. It is easy to get started with simple projects proof of concepts.
Taking a proof of concept to the next stage involves communication between the Arduino, the mobile device and the cloud. This facilitates configuration, data gathering, and more. The connectivity is what makes the Internet of Things interesting.
Let’s take a look at some options in all the layers of rapidly prototyping an Internet of Things solution powered by Arduino, connecting to Android and iPhone smartphones, and sharing data in the cloud. Looking at the best way to put the pieces together quickly and effectively.
Day 5 of C++ Boot Camp - Stepping Up to MobileJim McKeeth
Day 5 of C++ Boot Camp - Stepping Up to Mobile
Introduction to the mobile platforms
Prototyping mobile apps on Windows
Using platform services
Conditional defines
The mobile compilers
Understanding ARC memory management
Deployment manager
Making the move to mobile
More info http://embt.co/2016cppbootcamp5
Creating Android Services with Delphi and RAD Studio 10 SeattleJim McKeeth
Creating Android Services with Delphi and RAD Studio 10 Seattle
Covers: Why Android Services, Services vs. Threads, Service Types, Service Wizard, Service Limitations, etc.
More information http://delphi.org/?p=2084
Embarcadero provides the only app development platform for mobile, desktop, and the Internet of Things. Reach iOS, Android, Windows, Mac and more all from one code base, with one team.
Computer-brain interface is a mainstay of science fiction, and devices are available today to use our brainwaves as a computer input. But is it practical? How far away is it? Will "Big Brother" read our thoughts and hack our brains?
In this class, we will dive into the future of thought as input for wearable devices with real-world examples and code. Demonstrations will be shown using the Emotiv EPOC headset, a revolutionary high resolution, neuro-signal acquisition and processing wireless neuroheadset that uses a set of sensors to tune into electric signals produced by the brain to detect thoughts, feelings and expressions.
You will see the EEG neuroheadset and computer interface with examples of interfacing with desktop, mobile and wearable apps. We will dive into the roots of the technology, showing code and examples along with big pictures of the technology. You will walk away with an understanding of how this still evolving and largely unknown technology really works, how it can be used, as well as longer-term implications.
Hacking iBooks and ePub3 with JavaScript!Jim McKeeth
[Updated for 2013]
How to embed JavaScript in Interactive Widgets in iBooks Author 2 for use on the iPad. Also looks at embedded JavaScript in the page when creating ePub files from scratch. Uses DashCode, Tumult Hype 2, or your favorite text editor. Visit http://blogs.remobjects.com/?p=3862 for more information. From my presentation at 360iDev 2013 in Denver.
Cover about half of the requirements for the Boise Scouts of America's Inventing Merit Badge - all of the "knowledge" requirements. Still need to do the activity requirements. Also good primer on inventing and intellectual property. Presented at Desert Code Camp 2011.
Here is a download link for the Keynote (original) http://dl.dropbox.com/u/2847329/Inventing%20Merit%20Badge.key and the PowerPoint (converted) http://dl.dropbox.com/u/2847329/Inventing%20Merit%20Badge.ppt - since the PowerPoint is converted from the Keynote it may not be exactly right. Be sure to review it first.
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.
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.
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.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Welocme to ViralQR, your best QR code generator.ViralQR
Welcome to ViralQR, your best QR code generator available on the market!
At ViralQR, we design static and dynamic QR codes. Our mission is to make business operations easier and customer engagement more powerful through the use of QR technology. Be it a small-scale business or a huge enterprise, our easy-to-use platform provides multiple choices that can be tailored according to your company's branding and marketing strategies.
Our Vision
We are here to make the process of creating QR codes easy and smooth, thus enhancing customer interaction and making business more fluid. We very strongly believe in the ability of QR codes to change the world for businesses in their interaction with customers and are set on making that technology accessible and usable far and wide.
Our Achievements
Ever since its inception, we have successfully served many clients by offering QR codes in their marketing, service delivery, and collection of feedback across various industries. Our platform has been recognized for its ease of use and amazing features, which helped a business to make QR codes.
Our Services
At ViralQR, here is a comprehensive suite of services that caters to your very needs:
Static QR Codes: Create free static QR codes. These QR codes are able to store significant information such as URLs, vCards, plain text, emails and SMS, Wi-Fi credentials, and Bitcoin addresses.
Dynamic QR codes: These also have all the advanced features but are subscription-based. They can directly link to PDF files, images, micro-landing pages, social accounts, review forms, business pages, and applications. In addition, they can be branded with CTAs, frames, patterns, colors, and logos to enhance your branding.
Pricing and Packages
Additionally, there is a 14-day free offer to ViralQR, which is an exceptional opportunity for new users to take a feel of this platform. One can easily subscribe from there and experience the full dynamic of using QR codes. The subscription plans are not only meant for business; they are priced very flexibly so that literally every business could afford to benefit from our service.
Why choose us?
ViralQR will provide services for marketing, advertising, catering, retail, and the like. The QR codes can be posted on fliers, packaging, merchandise, and banners, as well as to substitute for cash and cards in a restaurant or coffee shop. With QR codes integrated into your business, improve customer engagement and streamline operations.
Comprehensive Analytics
Subscribers of ViralQR receive detailed analytics and tracking tools in light of having a view of the core values of QR code performance. Our analytics dashboard shows aggregate views and unique views, as well as detailed information about each impression, including time, device, browser, and estimated location by city and country.
So, thank you for choosing ViralQR; we have an offer of nothing but the best in terms of QR code services to meet business diversity!
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
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.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
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/
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.
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!
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT 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.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
3. ABOUT ME
• Live here in Boise - jim@mckeeth.org
• Lead Developer Evangelist for EmbarcaderoTechnologies
• www.embarcadero.com - Delphi for Android coming soon
• Google Developer Group - www.gdgb.org
• Boise Software Developers Group - www.bsdg.org
• Boise Code Camp - www.BoiseCodeCamp.com
Tuesday, August 20, 13
5. GOOD PLACESTO KNOW
• developer.android.com - Official developer site
• developers.google.com/android/ - Google on Android
• developers.google.com/events/io/ - Google I/O Replays
• stackoverflow.com - Great Q&A community
• android.stackexchange.com - End user Q&A
• vogella.com/android.html - Detailed tutorials
5
Tuesday, August 20, 13
7. ANDROID STACK
• Tweaked Linux 2.6
• Tweaked Java (Dalvik)
• Android OS
• Android Apps
• (Mostly open source)
7
Tuesday, August 20, 13
8. VERSION HISTORY
• November 5th, 2007 is Android’s Birthday
• Each version has a version number, name and API level
• Version number is most specific
• Name is group of versions and API levels
• Latest:Android 4.3 Jelly Bean (API 18)
http://en.wikipedia.org/wiki/Android_version_history#Version_history_by_API_level
Tuesday, August 20, 13
9. VERSION POPULARITY
As of August 2013
http://sn.im/platform-versions9
40% = Jelly Bean
63% >= ICS
96% >= Gingerbread
40%
23%
33%
Tuesday, August 20, 13
13. CORE APPLICATIONS
• Phone
• eMail and SMS clients
• Calendar
• Contacts
• Web Browser
• Geographic Support via Google Maps
13
Tuesday, August 20, 13
24. MULTIPLE ACTIVITIES
• Each Activity must be defined in manifest by class name and
“action”
• Activities reside on a “task stack” - visible activity is “top of
stack”
• Transition to an Activity using Intent
• Return from Activity using Activity.finish() which pops off task
stack
Tuesday, August 20, 13
25. “RES” - RESOURCES
• XML Files
• drawable
• layout
• values
• etc.
• Graphics
Tuesday, August 20, 13
26. RES/LAYOUT
• Each Activity should have dedicated layout XML file
• Layout file specifies Activity appearance
• Several layout types
• Default LinearLayout provides sequential placement of widgets
Tuesday, August 20, 13
28. • Application/Task is a stack of Activities
• Visible activity = top of stack
• Activities maintain state, even when notTOS
• “Back” button pops stack.
• “Home” key would move stack to background
• Selecting application brings to foreground or launches
new instance
APPLICATION AKATASK
Tuesday, August 20, 13
29. ANDROID.APP.ACTIVITY
• Activity extends Context
• Context contains application environment
• “a single focused thing a user can do”
• An application consists of 1 or more Activities
• Provides a default window to draw in, might be smaller than
screen or float on top of others
• UI elements are “View(s)” or widgets
Tuesday, August 20, 13
30. ANDROID.VIEW.VIEW
• Extends java.lang.Object
• Basic building block for UI components
• Rectangular area on display
• Responsible for drawing and event handling
• View is the base class for widgets
Tuesday, August 20, 13
34. ANDROID.CONTENT.INTENT
• Interprocess Communication messaging
• Can launch an Activity or start a Service
• new Intent(String action, Uri uri);
• new Intent(Context packageCtx, Class class);
• Intent.putExtra()
• Intent.setAction()
http://sn.im/android-intent
Tuesday, August 20, 13
35. INTENT (CONTINUED)
• android.intent.action.MAIN (receiver on main activity)
• many options:ACTION_VIEW, etc
• category = extra information
• MIME type
• extras (i.e. getAction(), getExtra(), etc)
Tuesday, August 20, 13
36. INTENT USAGE
• Activity Switch:
• new Intent(this, NextActivity.class);
• Web Browser:
• Uri uri = Uri.parse(“http://foobar.com”);
• new Intent(Intent.ACTION_VIEW, uri);
• Phone Dialer:
• Uri uri = Uri.parse(“tel:4085551212”);
• new Intent(Intent.ACTION_VIEW, uri);
http://sn.im/android-intent
Tuesday, August 20, 13
40. VIEW SIZE
• FILL_PARENT = parent sized (minus pad)
• Now “MATCH_PARENT” w/API Level 8
• WRAP_CONTENT = just big enough (plus pad)
Tuesday, August 20, 13
41. LAYING OUTVIEWS
• Gravity = position (i.e. left, right, center)
• Weight = extra/empty space allocation
• priority for expansion
• default weight is zero
Tuesday, August 20, 13
43. DENSITY INDEPENDENT
PIXELS
• An abstract unit that is based on the physical density of the screen.These units
are relative to a 160 dpi (dots per inch) screen, so 160dp is always one inch
regardless of the screen density.
• The ratio of dp-to-pixel will change with the screen density, but not necessarily
in direct proportion.
• You should use these units when specifying view dimensions in your layout, so
the UI properly scales to render at the same actual size on different screens.
• The compiler accepts both "dip" and "dp", though "dp" is more consistent with
"sp".
Tuesday, August 20, 13
44. SCALE-INDEPENDENT PIXELS
• This is like the dp unit, but it is also scaled by the user's font
size preference.
• Recommend you use this unit when specifying font sizes, so
they will be adjusted for both the screen density and the
user's preference.
Recom
m
ended
for
Fonts
Tuesday, August 20, 13
45. COLORS
• #RGB
• #ARGB ( Alpha / Red / Green / Blue )
• #RRGGBB (i.e. #3d1ec4)
• #AARRGGBB
Tuesday, August 20, 13
54. BEST PRACTICES
• Support multiple screen sizes and densities
• Use the Action Bar pattern - Good-bye menu button
• Build Dynamic UI with Fragments
• Know when to persist and restore state
• Don’t block main thread - use AsyncTask -Test with
StrictMode
http://sn.im/android-practices
http://sn.im/android-performance
Tuesday, August 20, 13
55. SUPPORT MULTIPLE SCREENS
SIZES & DENSITIES
• Use wrap_content, fill_parent, or dp units when
specifying dimensions in an XML layout file
• Do not use hard coded pixel values in your
application code
• Do not use AbsoluteLayout (it's deprecated)
• Supply alternative bitmap drawables for
different screen densities
• ldpi, mdpi, hdpi, xhdpi
http://sn.im/android-screens
Tuesday, August 20, 13
57. ACTION BAR
1. App Icon - optional “up” affordance
2. View control - Navigation
3. Dynamic number of “important” action buttons
4. Action overflow
http://sn.im/android-actionbar
http://actionbarsherlock.com/
Tuesday, August 20, 13
58. ASYNCTASK
private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
protected Long doInBackground(URL... urls) {
int count = urls.length;
long totalSize = 0;
for (int i = 0; i < count; i++) {
totalSize += Downloader.downloadFile(urls[i]);
publishProgress((int) ((i / (float) count) * 100));
// Escape early if cancel() is called
if (isCancelled()) break;
}
return totalSize;
}
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
}
http://sn.im/android-asynctask
Tuesday, August 20, 13
59. STRICT MODE
• Place a policy on a thread - provides feedback when blocked
public void onCreate() {
if (DEVELOPER_MODE) {
StrictMode.enableDefaults(); // Or configure
}
super.onCreate();
}
• http://sn.im/android-strictmode
• http://sn.im/android-strictmode-blog
Tuesday, August 20, 13
61. GOOD PLACESTO KNOW
• developer.android.com - Official developer site
• developers.google.com/android/ - Google on Android
• developers.google.com/events/io/ - Google I/O Replays
• stackoverflow.com - Great Q&A community
• android.stackexchange.com - End user Q&A
• vogella.com/android.html - Detailed tutorials
61
Tuesday, August 20, 13
62. ABOUT ME
• Live here in Boise - jim@mckeeth.org
• Lead Developer Evangelist for EmbarcaderoTechnologies
• www.embarcadero.com - Delphi for Android coming soon
• Google Developer Group - www.gdgb.org
• Boise Software Developers Group - www.bsdg.org
• Boise Code Camp - www.BoiseCodeCamp.com
Tuesday, August 20, 13