The document discusses modern Android development best practices and libraries. It recommends using libraries like ButterKnife, Otto event bus, Retrofit, Dagger 2, and Picasso. It also discusses implementing Material Design principles and shared element transitions. The recommended design pattern is Model-View-Presenter. The document promotes two apps developed with these techniques.
This document discusses building powerful enterprise applications with Angular and TypeScript. It provides an overview of key concepts in Angular including modules, components, templates, directives, services, routing and data binding. It also covers TypeScript features such as static type checking, transpiling to JavaScript, and advantages for productivity and managing large codebases. The document demonstrates how Angular and TypeScript can be used together to build robust single page applications.
Angular is a web application framework developed in 2009. It allows developers to create single page applications using HTML enhanced with Angular specific directives and by associating angular components like controllers, services and filters with HTML. The document provides an overview of key Angular concepts like controllers, services, filters and routing and how they are used to build interactive single page applications. It also demonstrates how to make HTTP requests to backend services and handle promises using the $http service and $q.
The document provides an overview of AngularJS, including its core concepts and how it can be used with Java frameworks like Spring, Struts, and Hibernate. AngularJS is an open-source JavaScript framework that assists with building single-page applications using MVC architecture. It allows developers to specify custom HTML tags and directives to control element behavior. The document then discusses key AngularJS concepts like data binding, directives, expressions, filters, controllers, dependency injection, views/routing, and services. It provides examples of how these concepts work and how AngularJS can integrate with Java frameworks in a sample reader application divided into multiple sub-projects.
Presentation about new Angular 9.
It gives introduction about angular framework.
Provides information about why we use angular,
additional features and fixes from old versions. It will clearly explain how to create a new angular project and how to use angular commands and their usages.
It will also explain about the key components like angular architecture, routing, dependency injection etc.,
This is the first of 3 parts of GWT Training. It is introduces Ajax and GWT and how to install GWT for Eclipse.
It is for Java Programmers that want to start Ajax development using GWT.
AngularJS is an open source JavaScript framework for building dynamic web applications. It enhances HTML with custom directives and bindings to enrich client-side web applications with reusable components. Key features include two-way data binding, reusable components, support for MVC/MVVM design patterns, end-to-end testing, cross-browser compatibility, and services. AngularJS allows developers to organize applications into modules and controllers to keep code clean and reusable.
The document provides best practice guidelines for developing Angular applications from version 2 to 6. It covers topics such as file structure conventions, naming conventions, coding conventions, component guidelines, directives, services and more. The guidelines aim to promote consistency, readability and maintainability of Angular codebases.
We Will learn about:
What is AngularJs?
Key Points
Core Features of AngularJS
How is it works?
AngularJs Terminologies
AngularJs directives
How we start work on AngularJs?
AngularJs Tags
How we use Yeoman?
Advantages and Disadvantages
The document provides an overview of various widgets available in Google Web Toolkit (GWT) for building user interfaces. It discusses static widgets like Label and Image, form widgets like Button, Checkbox and TextBox, and complex widgets like ListBox and SuggestBox. Code samples are given to demonstrate how to create and style these widgets using Java and Cascading Style Sheets (CSS). The document also explains concepts like event handling in GWT and working with the entry point class.
Understanding router state in angular 7 passing data through angular router s...Katy Slemon
Understanding Router State in Angular 7: Check out this tutorial to explore the new Angular feature for passing data through Angular RouterState with a demo app
Angular is a platform for building applications with templates, dependency injection, and integrated tools. It contains modules, components, directives, routing, and services as building blocks. Modules contain routes, components, directives, and services. Components form part of the DOM tree. Directives attach behavior to DOM elements. Routing enables navigation between views. Services provide business logic and data access. The Angular CLI is used to generate, develop, and maintain Angular applications.
Apps can take advantage of Magnolia CMS' built-in best-practice framework, reducing development time and improving end-user experience. They're also faster to develop, easier to maintain and more secure on account of Magnolia CMS' sophisticated, documented Apps API and encapsulated environment.
This document provides an overview of Angular 2 and Rxjs. Some key points covered include:
- Angular 2 is backed by Google and designed to be faster and more memory efficient than Angular 1. It uses TypeScript and focuses on components.
- Bootstrapping, modules, directives, bindings and pipes work differently in Angular 2 compared to Angular 1 with fewer overall concepts.
- Observables and operators from Rxjs allow for asynchronous programming and composing asynchronous operations. Common operators like map, filter and flatMap are discussed.
- Services can be used to share data between components. Components follow a lifecycle with hooks like ngOnInit and ngOnDestroy.
-
This document summarizes the key aspects of building maintainable Android applications using MVP architecture and Dagger 2 for dependency injection. It discusses using MVP to separate concerns into Model, View, and Presenter classes and interfaces. It explains how Dagger 2 can be used to inject dependencies into classes while avoiding direct dependencies between classes. It provides examples of implementing MVP with Dagger 2 modules and components to inject dependencies into activities and presenters. It also discusses using subcomponents to scope dependencies to specific features and mocks for testing.
Angular js 1.3 presentation for fed nov 2014Sarah Hudson
AngularJS is an up-and-coming JavaScript framework supported and maintained by Google. Over the past year, usage for the framework has exploded, giving many developers reason to believe it's the next big thing. In this presentation by Angular developer Sarah Hudson, you will learn the basics of what Angular is and what it can do for your projects, as well as breaking down the components of Angular, what makes it unique, and how it gives developers more control over custom templates and elements.
Sections include:
• Core structure and components of Angular, such as custom directives, factories for sharing data, two-way binding, and modules
• Companion libraries to Angular, such as the popular AngularUI suite which includes UI-Bootstrap
• A brief overview of routing options from Angular's native routing to UI Router, and how it offers flexibility for your apps
A simple tutorial for understanding the basics of angular JS. Very useful for the beginners. Also useful for the quick revision. Very attractive design for the tutorial of angular js.
Este documento contiene una serie de frases cortas y reflexivas sobre temas como la amistad, la vida, el trabajo, la familia, la música y los valores. Aborda conceptos como el valor de la humildad, la importancia de la reflexión, la pureza de la sonrisa de un niño y la unión familiar más allá del número de integrantes.
Este documento resume la malaria según la OMS, métodos de prevención como el uso de mosquiteros y repelentes, tipos de vacunas como la RTS,S/AS02A que reduce la infección en un 30%, los mosquitos transmisores del género Anopheles, las zonas más afectadas como África subsahariana, y el Día Mundial contra la Malaria el 25 de abril.
O documento discute o potencial da energia solar e como o cobre pode ser usado para melhorar sua eficiência e aplicações. O cobre tem boa condutividade térmica e é usado em coletores solares e painéis fotovoltaicos para captar e transmitir energia do sol. Sua cor preta também melhora a absorção de calor solar.
4.Evaluación de Proyectos y Aplicaciones ComputarizadasSelene Orozco
Facultad de Ciencias Agropecuarias, Universidad de Panamá
Formulación y Evaluación de Proyectos Agropecuarios, Profesor Javier Macre. Tema de Presentación Evaluación de Proyectos y Aplicaciones Computarizadas.
Mtaylor Get Acquainted Presentation 1 Safe One!morgan_taylor
The document is a presentation about Morgan Taylor that summarizes key details about her life. It outlines her early life growing up in Fayetteville, North Carolina. It then discusses her past experience in high school studying to be an administrative assistant and interning as a secretary. The presentation notes that currently Morgan is attending community college full-time and looking for a job in the administrative field. It concludes by outlining Morgan's future goals which are to graduate college, work as a school secretary, be successful and independent, and eventually travel around the world.
Dành cho kiến trúc sư, kỹ sư điện, kỹ sư chiếu sáng, công ty tư vấn, nhà thầu, chủ đầu tư có thể tính toán, thiết kế chiếu sáng, tư vấn lưa chọn sản phẩm đèn LED phù hợp cho chiếu sáng trong siêu thị, trung tâm thương mại, đảm bảo tiêu chuẩn chiếu sáng việt nam,quy chuẩn bộ y tế. tiết kiệm đến 50% điện năng, thời gian thu hồi vốn 6 tháng - 1 năm so với sản phẩm truyền thống compact, huỳnh quang. (đảm bảo theo các tiêu chí về chiếu sáng xanh trong các công trình). Phong cách, lôi cuốn
El documento describe las zonas geográficas con mayor riesgo de malaria, que incluyen gran parte de África y países subdesarrollados. Estas áreas tienen altos niveles de pobreza y recursos limitados, lo que contribuye a la alta incidencia de malaria y la muerte de casi un millón de personas al año, principalmente niños. Además, las vacunas contra la malaria son demasiado caras para que la población de estos países pueda pagarlas. El documento propone mejorar la vigilancia de enfermedades, financiar la investig
Introduction to Backbone.js for Rails developersAoteaStudios
Backbone.js is a small JavaScript library that helps organize front-end code using an MVC pattern. It does not dictate HTML structure or widgets, but rather provides structure for JavaScript code and ties together DOM events, views, and CRUD operations on models and collections. Key components include controllers, views, models, collections, and support for RESTful persistence via Backbone.sync and JSON. Templates can be used to render views and manage data display, and various templating engines are supported.
Building Modern Websites with ASP.NET by Rachel Appel.NET Conf UY
This document provides an overview of building modern websites with ASP.NET MVC, including discussions of models, controllers, views, routing, Entity Framework, and view models. It describes models as the application's data expressed as classes, controllers as handling requests and routing, and views as the UI layer that renders models. It also covers Entity Framework for database mapping, RESTful routing, and using view models to promote separation of concerns.
Comment développer une application mobile en 8 semaines - Meetup PAUG 24-01-2023Nicolas HAAN
À l'automne dernier, nous avons eu la chance de développer une nouvelle app pour un de nos clients en partant de zéro.
L'objectif ? Créer une application minimale à mettre entre les mains de dizaines de beta testeurs, en 8 semaines et avec 2 développeurs. Partant d'une feuille blanche, nous avons pu mettre en œuvre les dernières avancées de la stack Android sans être contraints par l'existant.
Développeurs débutants comme expérimentés, vous repartirez de ce talk avec nos apprentissages clés sur l'architecture ainsi que sur les bibliothèques et astuces pour faciliter la maintenance et la stabilité de l'application. En bonus, nous répondrons à la question : "Une app full-compose, est-ce que c'est cool ?"
1. Angular Components:
Component Configuration, Building a Template, Using Constructors, Using External Templates, Angular Routing to Single Page Application (SPA)
2. Data Binding:
Introduction, Interpolation, Property Binding, Attribute Binding, Class Binding, Style Binding, Event Binding, Two-way Binding.
Front End Development for Back End Developers - UberConf 2017Matt Raible
Are you a backend developer that’s being pushed into front end development? Are you frustrated with all JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We’ll explore the tools of the trade for frontend development (npm, yarn, Gulp, Webpack, Yeoman) and learn the basics of HTML, CSS, and JavaScript.
This presentation dives into the intricacies of Bootstrap, Material Design, ES6, and TypeScript. Finally, after getting you up to speed with all this new tech, I'll show how it can all be found and integrated through the fine and dandy JHipster project.
A full course about asp.net mvc 5 in Arabic. You can watch on my youtube channel https://www.youtube.com/watch?v=jrhdXwuyrfs&list=PLAPpPaAUVQyZJvtvWH9eOJcVkj7NLPQLk
Spring first in Magnolia CMS - Spring I/O 2015Tobias Mattsson
The document discusses using the Spring framework with a content management system (CMS) like Magnolia. It provides overviews of CMS features and Spring capabilities. It then details how Spring and Blossom, a Spring module, can integrate with Magnolia to enable using Spring MVC for page controllers and templates while leveraging the Magnolia CMS for content authoring, storage, and retrieval. Areas, pages, and components are modeled with Spring controllers and templates. Content is accessed and passed to views via the node API.
Adding custom ui controls to your application (1)Oro Inc.
This presentation discusses adding custom UI controls to an application. It covers frontend architecture using RequireJS and modular JavaScript. Practical examples are provided for adding a navigation history component and a WYSIWYG editor. Best practices are outlined such as extending base application components, separating MVC roles, and understanding component lifecycles. The presentation concludes with recommendations to read Backbone and Chaplin documentation.
Using and contributing to the next GuiceAdrian Cole
This document discusses dependency injection frameworks Guice and Dagger. It provides an overview of how Netflix uses Guice for projects like Governator and Karyon. It also explains how Dagger works by generating code at compile time to create a dependency injection graph, allowing for faster initialization than reflection-based frameworks. Examples are given of how to declare dependencies and satisfy them in both Guice and Dagger.
This document provides an overview of various Angular concepts including planning an Angular app, component lifecycle, communication between components, directives, pipes, routes, services, and forms. It discusses creating a new Angular project, adding Bootstrap styles, and planning out recipe and shopping list pages. It also covers data models, component lifecycle hooks, using inputs, outputs, viewChild, local variables and services for communication. The document explains attribute directives, built-in and custom pipes, integrating routes, and when to use template-driven versus reactive forms. It wraps up by previewing topics for the next session.
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
Building Modern Apps using Android Architecture ComponentsHassan Abid
Android architecture components are part of Android Jetpack. They are a collection of libraries that help you design robust, testable, and maintainable apps. In this talk, We will cover LiveData, ViewModel, Room and lifecycle components. We will go through practical code example to understand modern android app architecture especially MVVM architecture.
This document provides a summary of dependency injection and Dagger 2 in Android applications. It explains that dependency injection separates configuration from usage to improve maintainability, testability and reduce coupling. It describes how Dagger generates code to inject dependencies using annotations and component and module definitions. Modules provide dependencies while components inject them into classes. Scopes like per activity are supported. Overall Dagger improves architecture by managing object creation and dependencies through compile time verification rather than runtime errors.
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
The document provides information about Angular data binding and event handling. It discusses how interpolation can be used to connect data from a component class to its template. It also explains how property binding and event binding allow two-way communication between the component class and template. Finally, it introduces ngModel for setting up two-way data binding between an input element and a property.
This document discusses JavaScript frameworks and web components. It provides examples of code for Dojo, Ember, Angular, React, and jQuery. It also discusses the benefits of web components, including that they are part of the DOM, future-proof, and modular. Web components include custom elements, shadow DOM, templates, and HTML imports. Browser support is improving but not yet universal. Polyfills exist to provide support in older browsers. The web components specification has changed from version 0 to version 1 to support ES6 classes.
1) The document discusses how to build modular web applications using the JavaScript frameworks Backbone.js and RequireJS. It advocates separating an application into reusable components using the Model-View-Controller (MVC) pattern and composing the interface from independent views.
2) RequireJS allows code to be split into bite-sized modules and defines dependencies between modules. This supports large-scale application development and avoids dependency issues.
3) The document provides an example of a fictitious stock trading application called Bullsfirst that demonstrates these techniques and emphasizes the importance of architecture for engaging web applications.
This document discusses MVVM and data binding in Android development. It begins with an overview of MVVM theory and the roles of the model, view, and view model. It then covers Android's data binding library for linking UI components to data sources, including features like variable binding, listeners, and view model composition. The document also provides examples of using data binding with RecyclerView and accessing view values directly. It concludes with some links for further reading on MVVM patterns.
MVP Community Camp 2014 - How to useenhanced features of Windows 8.1 Store ...Akira Hatsune
This document discusses enhancements to Windows 8.1 Store apps and Blend 2013. It outlines major changes in Windows 8.1 including the replacement of ViewState with the ApplicationView class and changes to in-app search. It also describes new APIs, enhanced hub app and traditional templates, and new behaviors and sample data capabilities in Blend 2013. Store app developers can take advantage of these features to improve app design, navigation, and development workflow.
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
This is an overview video that shows the scope of work and technology used within the Red Hat JBoss BRMS and BPMS platforms.
The technology presented builds with GWT, Errai and UberFire as the foundation. Over 2015 we'll be working to make it for end users to consume the bits they need, paying for only what they use, so others can make power web platforms like BRMS and BPMS.
Agricultural Profitability through Resilience: Smallholder Farmers' Strategie...IJAEMSJORNAL
This study investigated the knowledge strategies and coping utilized by smallholder farmers in Guimba, Nueva Ecija to reduce and adjust to the effects of climate change. Smallholder farmers, who are frequently susceptible to climate change, utilize various traditional and innovative methods to strengthen their ability to withstand and recover from these consequences. Based on the results of this study, farmers in Guimba, Nueva Ecija demonstrate a profound comprehension of the adverse weather conditions, such as typhoons, droughts, and excessive rainfall, which they ascribe to climate change. While they have a fundamental understanding of climate change and its effects, their knowledge of scientific intricacies is restricted, indicating a need for information that is particular to the context. Although farmers possess knowledge about climate change, they are not actively engaging in proactive actions to adapt to it. Instead, they rely on reactive coping mechanisms. This highlights the necessity for targeted educational and communicative endeavors to promote the acceptance and implementation of approaches. Furthermore, the absence of available resources poses a significant barrier to achieving successful adaptation, highlighting the importance of pushing for inexpensive and feasible measures for adaptation. Farmers recognize the benefits of agroforestry and have started integrating the growth of fruit trees, particularly mangoes, into their coping techniques.
,*$/?!~00971508021841^(سعر حبوب الإجهاض في دبيnafizanafzal
,*$/?!~00971508021841^(سعر حبوب الإجهاض في دبي)حبوب سايتوتك في ام القيوينالاجهاض للبيع في الامارات اسقاط الجنين بدبي حبوب الحمل للبيع # بيع؟ ؟ #شراء؟ ؟ #حبوب؟ ؟ #الاجهاض؟ #سايتوتك؟ #في؟ ؟ #دبي؟ ؟ #الشارقه؟ ؟ #عجمان؟ ؟ #العين؟ ؟ #ابوظبي؟ #الجنين؟ #سايتوتك؟ ؟ #للبيع؟ Cytotec # # الامارات # في؟ #دبي؟ # سايتوتك للبيع من داخل # دبي # شارقه # عجمان للطلب من باقي الدول في الخل #Data Opennesيتضمن قرار الإجهاض في عيادة الإجهاض في أبو ظبي ، الإمارات العربية المتحدة ، اعتبارات أخلاقية وأخلاقية ودينية وعائلية ومالية وصحية وعصر. شراء حبوب الإجهاض في دبي ، شراء حبوب الإجهاض في عمان ، شراء حبوب الإجهاض في أبو ظبي ، شراء حبوب الإجهاض في الشارقة ، شراء حبوب الإجهاض في رأس الخيمة ( RAK ), شراء حبوب الإجهاض في # عجمان ، شراء حبوب الإجهاض في العين ، شراء حبوب الإجهاض في أم القيوين حبوب الإجهاض الحصرية للبيع في دبي.
أين يمكنني شراء حبوب الإجهاض في دبي / الإمارات العربية المتحدة?
هل يمكنني الحصول على حبوب الإجهاض في دبي?
عيادة إجهاض النساء في الإمارات / دبي
أين يتم الإجهاض في الإمارات / دبي / أبو ظبي
عيادة الإجهاض الآمن في الإمارات / دبي / أبو ظبي.
أفضل عيادة إجهاض في الإمارات / دبي / قطر
حبوب الإجهاض عبر الإنترنت AMAZON / DUBAI / الإمارات العربية المتحدة.
حبوب الإجهاض في DISC HEM في دبي.
تكلفة حبوب الإجهاض في أبو ظبي / الإمارات.
حبوب الإجهاض بسعر الخصم الإمارات / دبي.
حبوب الإجهاض تظهر في دبي.
سعر حبوب الإجهاض في دبي.
حبوب الإجهاض في قطر.
حبوب الإجهاض آثار جانبية.
أنا حبوب الإجهاض في أبو ظبي.
أطقم أطقم غير مرغوب فيها في دبي / الإمارات العربية المتحدة
أطقم أطقم غير مرغوب فيها في أبو ظبي
أطقم أطقم غير مرغوب فيها في أجمان
أطقم أطقم غير مرغوب فيها في الكويت
أطقم أطقم غير مرغوب فيها في قطر / الدوحة
حبوب الإجهاض الإماراتية.
حبوب الإجهاض 1MG KUWAIT.
حبوب الإجهاض لمدة 12 أسبوعًا في دبي.
حبوب الإجهاض 24 ساعة في الإمارات / دبي.
حبوب الإجهاض بعد شهرين في هندي.
حبوب الإجهاض بعد شهرين في دبي.
حبوب الإجهاض تصل إلى 3 أشهر في دبي.
486 حبوب الإجهاض.
أفضل مجموعة في دبي / الإمارات.
حبوب الإجهاض 500.الإمارات العربية المتحدة
حبوب الإجهاض غير مرغوب فيها 72 دبي
Maintaining asset integrity, maximising performance, and reaching peak production outcomes all depend on effective defect elimination management.
The difficulties of locating, comprehending, and resolving asset flaws will be examined in this article, with a focus on the significance of having a complete awareness of their nature, implications, and possible outcomes.
The significance of maintenance departments creating a framework for integrating defect elimination and bad actor analysis into their proactive maintenance strategies, enabling them to make more informed decisions, becomes clear when we delve into the subtleties of defect analysis.
Defects in an asset are characterised as flaws, inadequacies, or departures from standard operating characteristics or design specifications.
The kind of defect, where it is located on the assembly of the asset, and what happens when it exists determine how one defect impacts the performance of the asset as a whole.
For example, a minor corrosion patch on a panel that is readily replaceable and does not pose a structural risk to the asset overall is unlikely to have an adverse effect on the asset's longevity, performance, or safety.
Effective Defect Elimination Management is critical for maintaining asset integrity, optimizing performance, and achieving peak production results. It involves identifying, understanding, and addressing asset defects systematically.
Understanding asset defects requires accurate identification and comprehensive documentation in the CMMS, including risk assessments that evaluate both the consequence and likelihood of defects leading to failures.
Defect Elimination Management (DEM) is a comprehensive approach that goes beyond traditional maintenance practices, focusing on root cause analysis and implementing long-term solutions to prevent defect recurrence.
"Bad Actors" in defect elimination refer to equipment, systems, or components that consistently underperform, require frequent maintenance, or cause repeated operational reliability or quality issues.
Advanced diagnostic tools and technologies, such as vibration analysis systems, infrared thermography, and AI-based analytics, have transformed the way asset defects are identified and managed.
Quality and timely repairs and clear business processes for managing defects are crucial, along with maintaining quality maintenance history data to provide valuable insights for future defect elimination processes.
To learn more, you can read my article via this link: https://www.cmmssuccess.com/defect-elimination-management/
Artificial Intelligence Imaging - medical imagingNeeluPari
10 stages of Artificial Intelligence,
Artificial intelligence (AI) has made significant advancements in the field of medical imaging, offering valuable tools and capabilities to improve diagnostics, treatment planning, and patient care. Here are several ways AI is used in medical imaging
internship project presentation for reference.pptxSaieJadhav1
Purpose :- Debian-based Linux distribution for advanced Penetration Testing and Security Auditing.- Developed by Offensive Security, known for security training.- Released in March 2013, a rebuild of BackTrack Linux following Debian standards.Maintained by Offensive Security:- Offensive Security oversees Kali Linux, ensuring it includes the latest security tools.- Known for certifications like OSCP (Offensive Security Certified Professional).Usage:- Penetration Testing: Simulates cyber-attacks to find system vulnerabilities.- Security Research: Helps researchers understand exploits and security techniques.- Computer Forensics: Used in digital crime investigations and data recovery.
Structural Dynamics and Earthquake Engineeringtushardatta
Slides are prepared with a lot of text material to help young teachers to teach the course for the first time. This also includes solved problems. This can be used to teach a first course on structural dynamics and earthquake engineering. The lecture notes based on which slides are prepared are available in SCRIBD.
Bell Crank Lever.pptxDesign of Bell Crank Leverssuser110cda
In a bell crank lever, the two arms of the lever are at right angles.
Such type of levers are used in railway signalling, governors of Hartnell type, the drive for the air pump of condensers etc.
The bell crank lever is designed in a similar way as discussed earlier.
The Transformation Risk-Benefit Model of Artificial Intelligence: Balancing R...gerogepatton
This paper summarizes the most cogent advantages and risks associated with Artificial Intelligence from an
in-depth review of the literature. Then the authors synthesize the salient risk-related models currently being
used in AI, technology and business-related scenarios. Next, in view of an updated context of AI along with
theories and models reviewed and expanded constructs, the writers propose a new framework called “The
Transformation Risk-Benefit Model of Artificial Intelligence” to address the increasing fears and levels of
AIrisk. Using the model characteristics, the article emphasizes practical and innovative solutions where
benefitsoutweigh risks and three use cases in healthcare, climate change/environment and cyber security to
illustrate unique interplay of principles, dimensions and processes of this powerful AI transformational
model.
3. Code behind
• Libraries:
• ButterKnife
• Square Otto Event Bus
• Google Play Services
• Support libraries
• Material design
• Retrofit
• Dagger2
• Picasso
24.09.20153
4. ButterKnife v7.0.1
• Annotate fields with @Bind
• ButterKnife will find the binded ID to the component, layout or resource ids.
• Why?
• Slow reflection. ButterKnife makes sure that the code is generated to perform the view
lookups. Bind delegates to the generated code.
• Resource Binding
• Bind resources. You need to specify the Bind. For example @BindString,
@BindDrawable, @BindColor, @BindDimen
• Non-Activity Binding
• Use @Bind to connect the component or Array. But need to specify @Bind({,….})
• Listener
• Bind listeners for example annotate @OnClick({….}) or @OnItemSelected({…})
• Reset Bind
• Need to clean the bindings when destroying an Activity
or a Fragment using @UnBind.
24.09.20154
5. Square Otto Event Bus v1.3.8
• Decouple parts of the application for communication.
• Acts as a pub-sub.
• Publish
• Tell Subscribers that an action has occured
• Subscribe
• Receive notification that an event has occured
• Annotate method with @Subscribe
• Register to a bus
• Need to call bus.register(this). In order to receive events
24.09.20155
bus.post(new AnswerAvailableEvent(42));
@Subscribe public void answerAvailable(AnswerAvailableEvent event) { //
TODO: React to the event somehow! }
6. Retrofit v2.0
• Turns HTTP API into a Java interface
• Uses Annotations to describe HTTP request:
• URL parameter replacement and query parameter support
• Object convertsion to request body (JSON, protocol buffer)
• Multipart request body and file upload
• Request Method
• Request Body
• Multipart
• Header
24.09.20156
@GET("/group/{id}/users") List<User> groupList(@Path("id") int groupId);
@POST("/users/new") Call<User> createUser(@Body User user);
@Multipart @PUT("/user/photo") Call<User> updateUser(@Part("photo")
RequestBody photo, @Part("description") RequestBody description);
@Headers({ "Accept: application/vnd.github.v3.full+json", "User-Agent:
Retrofit-Sample-App" }) @GET("/users/{username}") Call<User>
getUser(@Path("username") String username);
7. Dagger2
24.09.20157
• Dependency Injection making application loosely coupled.
• Annotations:
• @Module: classes whose methods provide dependencies
• @Provides: methods within module classes
• @Inject: request a dependency (a constructor, field or a method)
• @Component: bridge interface between modules and injection
@Module
public class VehicleModule {
@Provides @Singleton
Motor provideMotor(){
return new Motor();
}
@Provides @Singleton
Vehicle provideVehicle(){
return new Vehicle(new Motor());
}
}
@Inject
public Vehicle(Motor motor){
this.motor = motor;
}
@Singleton
@Component(modules = {VehicleModule.class})
public interface VehicleComponent {
Vehicle provideVehicle();
} // connect @modules with @inject
8. Dagger2
24.09.20158
• When everything is ready
• Obtain instance of the interface and invoke its method.
• Do it inside onCreate method!
• Why Dagger2?
• No reflection: graph validation, configuration and precondition done at compile time.
• Performance gain
public class MainActivity extends ActionBarActivity {
Vehicle mVehicle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
VehicleComponent component = Dagger_VehicleComponent.builder().vehicleModule(new VehicleModule()).build();
mVehicle = component.provideVehicle();
Toast.makeText(this, String.valueOf(vehicle.getSpeed()), Toast.LENGTH_SHORT).show();
}
}
9. Picasso v2.5.2
24.09.20159
• Load image into a view based on url or from memory
• Picasso handles:
• ImageView recycling and download cancelation in an adapter
• Complex image transformations with minimal memory usage
• Automatic memory and disk caching.
• Has placeholders in case of loading or failed loading image.
Picasso.with(context) .load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error) .into(imageView);
10. Material Design
• Make all apps flat as paper,
• responsive animations!
• Right color and shadow depths
• Get inspired!
• http://www.materialup.com/
11. Material Design
• Use Androids Design library:
• com.android.support.design
• Snackbar!
• Like Toast, but shows a message at the bottom of
the screen
Snackbar.make(mDrawerLayout, "Your message", Snackbar.LENGTH_SHORT)
.setAction(getString(R.string.text_undo), this)
.show();
12. Shared Element Transition
24.09.201512
• Animate different UI states in an application.
• Built on
• Scene: Defines UI states in an application
• Transition: Defines the animated change between two scenes
• Need to define transition in style.xml and also
<transitionSet
xmlns:android="http://schemas.android.com/apk/res/android">
<changeBounds>
<targets>
<target android:targetId="@id/ivPosterImage" />
<target android:targetId="@id/detailed_image" />
</targets>
</changeBounds>
<changeImageTransform>
<targets>
<target android:targetId="@id/ivPosterImage" />
<target android:targetId="@id/detailed_image" />
</targets>
</changeImageTransform>
</transitionSet>
14. Floating Action Button
24.09.201514
• fabSize: set the size of the button
• Normal: 56dp
• Mini: 40dp
• backgroundTint: set the background color of this instance
• rippleColor set color of the ripple effect when pressed
• src: set the icon displayed within the FAB
<android.support.design.widget.FloatingActionButton
android:id=”@+id/fab_normal”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:src=”@drawable/ic_plus”
app:fabSize=”normal” />
15. EditText Floating Labels
• Display floating labels above EditText fields.
• Gives focus or hint of float.
• Useful to use while data is being input
• You can also add Error message
24.09.201515
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit_text_email"
android:layout_width="match_parent"/>
</android.support.design.widget.TextInputLayout>
setErrorEnabled(true);
setError(getString(R.string.text_error_message));
17. TabLayout
• tabMode: set the layout to fixed or scrollable
• tabGravity: set gravity of the tab, either filled (distributed to all available space
between individual tabs) or centre (position tabs in the center of the TabLayout)
• setText() and setIcon()
• Listeners:
• OnTabSelectedListener
• TabLayoutOnPageChangeListener
• ViewPagerOnTabSelectedListener
24.09.201517
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabGravity="fill" />
ViewPager pager = (ViewPager)
rootView.findViewById(R.id.viewPager);
pager.setAdapter(new MyPagerAdapter(getActivity().getSupportFragmentManager()));
TabLayout tabLayout = (TabLayout)
rootView.findViewById(R.id.sliding_tabs);tabLayout.addTab(tabLayout.newTab().setText("Tab One"));
tabLayout.addTab(tabLayout.newTab().setText("Tab Two"));
tabLayout.addTab(tabLayout.newTab().setText("Tab Three"));
tabLayout.setupWithViewPager(pager);
18. Coordinator Layout
• Super FrameLayout
• Adds transition view basedon motion of other components
• Lets us adapt layouts based on scroll events.
• Set the property layout_scrollFlags
• enterAlways – view will become visible when a downward scroll event occurs
• enterAlwaysCollapsed – if view has minHeight, it will only
enter at a that height and expand fully once the scrolling view
reached the top.
24.09.201518
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior=
"@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
/> </android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
19. Support Toolbar
• Use
• com.android.support.appcompat-v7:<versionnumber>
• Remember to style the toolbar!
24.09.201519
<android.support.v7.widget.Toolbar
android:id=”@+id/my_awesome_toolbar”
android:layout_height=”wrap_content”
android:layout_width=”match_parent”
android:minHeight=”?attr/actionBarSize”
android:background=”?attr/colorPrimary” />
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blah);
Toolbar toolbar = (Toolbar)
findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
}
<style name="Theme.MyTheme"
parent="Theme.AppCompat.Light">
<!-- Set AppCompat’s actionBarStyle -->
<item name="actionBarStyle">@style/MyActionBarStyle</item>
<!-- Set AppCompat’s color theming attrs -->
<item name="colorPrimary">@color/my_awesome_red</item>
<item
name="colorPrimaryDark">@color/my_awesome_darker_red</item>
<!-- The rest of your attributes -->
</style>
20. Pattern recommended to use
• Model-View-Presenter (MVP)
• User interacts with the View.
• There is one-to-one relationship between View and Presenter means one View is mapped to
only one Presenter.
• View has a reference to Presenter but View has not reference to Model.
• Provides two way communication between View and Presenter.
24.09.201520
21. Firmu – The Cinema Locator App
• Google Play Store
• (Later on Windows Store and IOS).
• Highly inspired by Material Design and modern
mobile development.
• Feedback on the app please
24.09.201521
22. Pitch (Beta version)
• Google Play Store
• (Later on Windows Store and IOS).
• Highly inspired by Material Design and modern
mobile development.
• Feedback on the app please
24.09.201522