A Separation of Concerns Clean Architecture on Android
|
|
- Jasper Jones
- 5 years ago
- Views:
Transcription
1 A Separation of Concerns Clean Architecture on Android Kamal Kamal Mohamed Android Developer, //TODO Find Better Outware Mobile Ryan Hodgman Official Despiser of Utils Outware Mobile 18/09/ YOW Connected 2015
2 Why are we here? To share with you our journey in applying Clean Architecture to an Android project...and get some valuable feedback
3 Premise Our own interpretation Multiple possible implementations Under development Iterating on it on a day to day basis Not a silver bullet Best suited for medium-big projects
4
5 What are our goals as developers? Maintainable Easy to refactor on volatile projects
6 What are our goals as developers? Maintainable Easy to refactor on volatile projects Testable Be confident that the code is reliable
7 What are our goals as developers? Maintainable Easy to refactor on volatile projects Testable Be confident that the code is reliable Scalable Can increase scope without requiring a rework
8 What are our goals as developers? Maintainable Easy to refactor on volatile projects Testable Be confident that the code is reliable Scalable Can increase scope without requiring a rework Readable Reduce the difficulty of future development efforts
9 Introduction to Clean
10 What is Clean Architecture?
11 Robert Martin s original depiction of Clean Architecture 8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
12 The Dependency Rule Source code dependencies can only point inwards
13 How many layers? (The answer is three)
14 Separation of Concerns Presentation Logic Defines how to display visual information to the user Examples: Organize screen layout Format text Enable user input
15 Separation of Concerns Business Logic Implements the business requirements of the application Examples: Verify user authorization Choose data to be displayed Determine if additional user input is required
16 Separation of Concerns Data Logic Stores and retrieves data to achieve the business requirements Examples: Make an API call Query a local database Access the local filesystem
17 Architectural Diagram
18 Architectural Diagram Image Source: Lucasfilm Ltd. All Rights Reserved
19 Domain Layer
20 Domain Layer
21 Entity Represents a business object that concerns the application Least likely to change when shifting requirements
22 Entity Represents a business object that concerns the application Least likely to change when shifting requirements Responsibilities Model the relationships with real-world objects / concepts Encapsulate the properties required by the application s business logic
23 Entity Represents a business object that concerns the application Least likely to change when shifting requirements Responsibilities Interactions Model the relationships with real-world objects / concepts May be used directly by all layers of the application Encapsulate the properties required by the application s business logic Likely that they may be mapped from data sources or to presentable view models
24 Entity
25 Entity Properties
26 Entity Entity-specific logic
27 Use Case Contains the business logic related to a specific use case Can be run and canceled
28 Use Case Contains the business logic related to a specific use case Can be run and canceled Responsibilities Execute a piece of business logic Define a Callback to provide results Inform the Callback of the result Interact with the data layer
29 Use Case Contains the business logic related to a specific use case Can be run and canceled Responsibilities Execute a piece of business logic Define a Callback to provide results Inform the Callback of the result Interactions Use Case Implements Notifies Uses Interact with the data layer Repository Callback Use Case Callback Repository
30 Use Case
31 Use Case One or more Repository objects
32 Use Case May be run and cancelled
33 Use Case Contains business logic
34 Use Case Defines interactions
35 Repository Asynchronous interface to abstract data access to a specific set of data from the data layer
36 Repository Asynchronous interface to abstract data access to a specific set of data from the data layer Responsibilities Provide methods to store and retrieve data of a specific type Define Callback interfaces to return the results of each operation
37 Repository Asynchronous interface to abstract data access to a specific set of data from the data layer Responsibilities Interactions Repository Provide methods to store and retrieve data of a specific type Uses Define Callback interfaces to return the results of each operation Use Case Implements Data Manager
38 Repository
39 Repository Asynchronous
40 Repository Callback definition
41 A Brief Note on Test-Driven-Development
42 Presentation Layer
43 Presentation Layer
44 Model-View-Presenter Implements View Surface Activity Fragment Presentation Uses View Presenter Domain Uses Uses
45 Presenter Implements presentation logic by directing UI changes and handling user input
46 Presenter Implements presentation logic by directing UI changes and handling user input Responsibilities Direct UI changes Handle user triggered UI events Create and trigger Use Case objects Define a View Surface interface
47 Presenter Implements presentation logic by directing UI changes and handling user input Responsibilities Direct UI changes Handle user triggered UI events Create and trigger Use Case objects Interactions Presenter Implements Uses Triggers Define a View Surface interface Use Case Callback View Surface Use Case
48 Presenter
49 Presenter Systems Surfaces and Use Cases
50 Presenter Lifecycle events
51 Presenter UI event management
52 View Surface Abstracts away the implementation of the UI logic, and is typically implemented by a View, Activity or Fragment
53 View Surface Abstracts away the implementation of the UI logic, and is typically implemented by a View, Activity or Fragment Responsibilities Screen layout Animations / transitions Propagate UI events to the Presenter Navigation
54 View Surface Abstracts away the implementation of the UI logic, and is typically implemented by a View, Activity or Fragment Responsibilities Screen layout Animations / transitions Propagate UI events to the Presenter Navigation Interactions Activity Implements Presenter View Surface Informs Presenter
55 View Surface
56 View Surface Navigation
57 View Surface UI information
58 View Surface UI state
59 System Surface Abstracts away the implementation of various system functionalities
60 System Surface Abstracts away the implementation of various system functionalities Responsibilities Provide functionality specific to the OS / device Gracefully fail in the event of missing functionality
61 System Surface Abstracts away the implementation of various system functionalities Responsibilities Provide functionality specific to the OS / device Gracefully fail in the event of missing functionality Interactions System Surface Used by Presenter
62 System Surface
63 System Surface Android system dependencies
64 System Surface System-specific implementation
65 Data Layer
66 Data Layer
67 Data Manager Implements a single Repository interface to handle all the data sources required for a specific set of data
68 Data Manager Implements a single Repository interface to handle all the data sources required for a specific set of data Responsibilities Provide access to a specific set of data Make request on a data source in the form of a Client Handle a cache when required
69 Data Manager Implements a single Repository interface to handle all the data sources required for a specific set of data Responsibilities Interactions Data Manager Provide access to a specific set of data Implements Notifies Uses Make request on a data source in the form of a Client Repository Callback Repository Handle a cache when required Client
70 Client Encapsulates a particular source of data and exposes an abstracted interface to the Data Managers
71 Client Encapsulates a particular source of data and exposes an abstracted interface to the Data Managers Responsibilities Make Database queries Manage an API connection Access Local Storage Map data results to domain Entities
72 Client Encapsulates a particular source of data and exposes an abstracted interface to the Data Managers Responsibilities Interactions Client Make Database queries Handles Manage an API connection Access Local Storage Map data results to domain Entities Used by Uses Data Manager Data Source Mapper
73 Mapper Converts a data object (API or DB response) to a domain Entity
74 Mapper Converts a data object (API or DB response) to a domain Entity Responsibilities Transform data into domain-convenient Entities
75 Mapper Converts a data object (API or DB response) to a domain Entity Responsibilities Transform data into domain-convenient Entities Interactions Data Object Mapper Entity
76 Conclusions
77 Pros Workflow improvements Possibility to work on separate layers in parallel Code readability No more line Activity classes Testability Isolated business logic
78 Cons Hierarchy implementation Implementing a feature requires working across all of the layers Developer onboarding Increased ramp-up time for new developers Interfaces Interfaces, interfaces,...
79 Further thoughts Dependency injection Dagger 2! Can help a lot with keeping the layers clean
80 Further thoughts Dependency injection Dagger 2! Can help a lot with keeping the layers clean Thread management Where should we split tasks onto a worker thread?
81 Further thoughts Dependency injection Dagger 2! Can help a lot with keeping the layers clean Thread management Where should we split tasks onto a worker thread? Functional programming RxJava! Helps to reduce callbacks and make flows clearer
82 Further thoughts Dependency injection Dagger 2! Can help a lot with keeping the layers clean Thread management Where should we split tasks onto a worker thread? Functional programming RxJava! Helps to reduce callbacks and make flows clearer User narratives May be useful to model a stateful user flow through the application
83 Next thing you can do! Consider the separation between data, domain, and presentation logic in one of your projects
84 References The Clean Architecture [Uncle Bob] Architecting Android The clean way? [Fernando Cejas] Sample Project [Ryan and Kamal]
85 Contact details Kamal Kamal Mohamed Ryan Hodgman
Android Best Practices
Android Best Practices Agenda Introduction The clean architecture Testing Support library Libraries we can depend on What's next Introduction Introduction Android Studio Gradle Material Design Lollipop
More informationClean Architecture Patterns, Practices, and #DevSum17
Clean Architecture Patterns, Practices, and Principles @matthewrenze #DevSum17 About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker
More informationClean Architecture Patterns, Practices, and #sddconf
Clean Architecture Patterns, Practices, and Principles @matthewrenze #sddconf About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker
More informationAndroid Essentials with Java
Android Essentials with Java Before You Program o Exercise in algorithm generation Getting Started o Using IntelliJ CE Using Variables and Values o Store data in typed variables Static Methods o Write
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts
More informationCOURSE 20480B: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3
ABOUT THIS COURSE This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic HTML5/CSS3/JavaScript programming skills. This course is an entry point into
More informationAN ENTITY-COMPONENT SYSTEM IN C++ AND QT - JAMES TURNER QT3D S ECS
AN ENTITY-COMPONENT SYSTEM IN C++ AND QT - JAMES TURNER QT3D S ECS INTRODUCTION JAMES TURNER C++ and OpenGL developer Consultant in Qt for ten years, currently at KDAB Maintainer of open-source FlightGear
More informationProgramming in HTML5 with JavaScript and CSS3
Programming in HTML5 with JavaScript and CSS3 20480B; 5 days, Instructor-led Course Description This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic
More informationCOURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3
COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 MODULE 1: OVERVIEW OF HTML AND CSS This module provides an overview of HTML and CSS, and describes how to use Visual Studio 2012
More information20480B: Programming in HTML5 with JavaScript and CSS3
20480B: Programming in HTML5 with JavaScript and CSS3 Course Details Course Code: Duration: Notes: 20480B 5 days This course syllabus should be used to determine whether the course is appropriate for the
More information5 System architecture
5 System architecture This chapter provides an overview of the system architecture. The first section presents a superficial explanation of the entire systems architecture. In section two, architectural
More informationCOPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...
Table of Contents Foreword..................... xv About This Book... xvii About The Authors............... xxiii Guide To The Reader.............. xxvii Part I Some Concepts.................. 1 1 On Patterns
More informationOFFLINE MODE OF ANDROID
OFFLINE MODE OF ANDROID APPS @Ajit5ingh ABOUT ME new Presenter( Ajit Singh, github.com/ajitsing, www.singhajit.com, @Ajit5ingh ) AGENDA Why offline mode? What it takes to build an offline mode Architecture
More informationCourse 20480: Programming in HTML5 with JavaScript and CSS3
Course 20480: Programming in HTML5 with JavaScript and CSS3 Overview About this course This course provides an introduction to HTML5, CSS3, and JavaScript. This course helps students gain basic HTML5/CSS3/JavaScript
More informationReactive Programming and Clean Architecture in Android Development. Tung Bui Duy. Helsinki Metropolia University of Applied Sciences
Tung Bui Duy Reactive Programming and Clean Architecture in Android Development Helsinki Metropolia University of Applied Sciences Bachelor of Engineering Information Technology Thesis 27 April 2017 Abstract
More informationDrupal 8 THE VIDER ITY APPR OACH
Drupal 8 THE VIDER ITY APPROACH Introduction DR UPAL 8: THE VIDER ITY APPROACH Viderity focuses on designing the Total User Experience for Drupal sites, using a user-centered design approach Traditionally,
More informationPATTERN-ORIENTED SOFTWARE ARCHITECTURE
PATTERN-ORIENTED SOFTWARE ARCHITECTURE A Pattern Language for Distributed Computing Volume 4 Frank Buschmann, Siemens, Munich, Germany Kevlin Henney, Curbralan, Bristol, UK Douglas C. Schmidt, Vanderbilt
More informationThe Art of Unit Testing
The Art of Unit Testing with Examplee in.net Roy Oeberove 11 MANNING Greenwich (74 w. long.) Contents foreword t xv preface xvii acknowledgments xix about this book xx about the cover illustration XXIII
More informationA simple, scalable app architecture with Android Annotations Luke Sleeman Freelance Android developer lukesleeman.com.au
A simple, scalable app architecture with Android Annotations Luke Sleeman Freelance Android developer lukesleeman.com.au Image CC: https://flic.kr/p/6oqczb Luke Sleeman - Freelance developer specialising
More informationCustomer Success Onboarding Guide. Version 11.3
Customer Success Onboarding Guide Version 11.3 Hello and Welcome to the SmartBear family! SmartBear has put a major focus on Customer Success to ensure our customers can maximize the return on their investment
More informationFast Track to EJB 3.0 and the JPA Using JBoss
Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity
More informationPART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3
INTRODUCTION xix PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3 The Life of Windows 3 From Windows 3.1 to 32-bit 4 Windows XP
More informationOracle Fusion Middleware 11g: Build Applications with ADF I
Oracle University Contact Us: +966 1 1 2739 894 Oracle Fusion Middleware 11g: Build Applications with ADF I Duration: 5 Days What you will learn This course is aimed at developers who want to build Java
More informationImplementation Architecture
Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition
More informationProgramming in HTML5 with JavaScript and CSS3
20480 - Programming in HTML5 with JavaScript and CSS3 Duration: 5 days Course Price: $2,975 Software Assurance Eligible Course Description Course Overview This training course provides an introduction
More information<Insert Picture Here> QCon: London 2009 Data Grid Design Patterns
QCon: London 2009 Data Grid Design Patterns Brian Oliver Global Solutions Architect brian.oliver@oracle.com Oracle Coherence Oracle Fusion Middleware Product Management Agenda Traditional
More informationAPACHE SLING & FRIENDS TECH MEETUP BERLIN, SEPTEMBER How to write clean & testable code without losing your mind - Andreas Czakaj
APACHE SLING & FRIENDS TECH MEETUP BERLIN, 25-27 SEPTEMBER 2017 How to write clean & testable code without losing your mind - Andreas Czakaj How did you learn what you know today? There are three kinds
More informationIBM Best Practices Working With Multiple CCM Applications Draft
Best Practices Working With Multiple CCM Applications. This document collects best practices to work with Multiple CCM applications in large size enterprise deployment topologies. Please see Best Practices
More informationDomain Driven Design IS. An architectural methodology for evolving a software system that closely aligns to business requirements
Domain Driven Design IS An architectural methodology for evolving a software system that closely aligns to business requirements Domain Driven Design IS Domain First Focus on the Object Model Focus on
More informationDistributed OSGi Services with the Eclipse Communication Framework. Jan S. Rellermeyer, ETH Zürich Markus Kuppe, Versant Inc.
June 10-11, 2008 Berlin, Germany Distributed OSGi Services with the Eclipse Communication Framework Jan S. Rellermeyer, ETH Zürich Markus Kuppe, Versant Inc. ECF: Eclipse Communication Framework Communication
More informationMicrosoft Programming in HTML5 with JavaScript and CSS3
1800 ULEARN (853 276) www.ddls.com.au Microsoft 20480 - Programming in HTML5 with JavaScript and CSS3 Length 5 days Price $4510.00 (inc GST) Version B Overview This course provides an introduction to HTML5,
More informationCS123. Programming Your Personal Robot. Part 2: Event Driven Behavior
CS123 Programming Your Personal Robot Part 2: Event Driven Behavior You Survived! Smooth Sailing Topics 2.1 Event Driven Programming Programming Paradigms and Paradigm Shift Event Driven Programming Concept
More information20480B - Version: 1. Programming in HTML5 with JavaScript and CSS3
20480B - Version: 1 Programming in HTML5 with JavaScript and CSS3 Programming in HTML5 with JavaScript and CSS3 20480B - Version: 1 5 days Course Description: This course provides an introduction to HTML5,
More informationARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV
ARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV 90seconds.tv 14000+ VIDEOS 1200+ BRANDS 92+ COUNTRIES data class RegisterViewModelStateImpl( override val email: ObservableString
More informationCross-Platform Mobile Platforms and Xamarin. Presented by Mir Majeed
Cross-Platform Mobile Platforms and Xamarin Presented by Mir Majeed Agenda 1. Sharing Code Among Different Platforms File-Linking into each App Project Portable Class Libraries 2. Solution Population Strategies
More informationAudit. A Senior Project presented to the Faculty of the Computer Science Department California Polytechnic State University, San Luis Obispo
Audit A Senior Project presented to the Faculty of the Computer Science Department California Polytechnic State University, San Luis Obispo In Partial Fulfillment of the Requirements for the Degree Bachelor
More informationAgile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?
Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.
More informationManaging Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup
Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting
More informationUser Interfaces for Web Sites and Mobile Devices. System and Networks
User Interfaces for Web Sites and Mobile Devices System and Networks Computer Systems and Networks: Device-Aware Interfaces Interfaces must take into account physical constraints of computers and networks:
More informationOracle Fusion Middleware 11g: Build Applications with ADF I
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Oracle Fusion Middleware 11g: Build Applications with ADF I Duration: 5 Days What you will learn Java EE is a standard, robust,
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 14, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles I Nov 14, 2012 1 / 80
More informationApp Engine MapReduce. Mike Aizatsky 11 May Hashtags: #io2011 #AppEngine Feedback:
App Engine MapReduce Mike Aizatsky 11 May 2011 Hashtags: #io2011 #AppEngine Feedback: http://goo.gl/snv2i Agenda MapReduce Computational Model Mapper library Announcement Technical bits: Files API User-space
More informationComprehensive AngularJS Programming (5 Days)
www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop
More informationProgramming in C# for Experienced Programmers
Programming in C# for Experienced Programmers Course 20483C 5 Days Instructor-led, Hands-on Introduction This five-day, instructor-led training course teaches developers the programming skills that are
More informationHow Can a Tester Cope With the Fast Paced Iterative/Incremental Process?
How Can a Tester Cope With the Fast Paced Iterative/Incremental Process? by Timothy D. Korson Version 7.0814 QualSys Solutions 2009 1 Restricted Use This copyrighted material is provided to attendees of
More information1. Instructions for Accessing the FamilyTreeApp Code
FamilyTreeApp Download the source for the reference application (described briefly in Family TreeApp Reference Application on page 10 of our book) at https://java.net/ projects/nbfamilytreeapp. 1. Instructions
More informationProduced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar
Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie)! Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie
More informationOracle Fusion Middleware 11g: Build Applications with ADF Accel
Oracle University Contact Us: +352.4911.3329 Oracle Fusion Middleware 11g: Build Applications with ADF Accel Duration: 5 Days What you will learn This is a bundled course comprising of Oracle Fusion Middleware
More informationRediscovering. Modularity. Stuttgart JUG November 20 th 2012
Rediscovering Modularity Structure101 @chedgey Stuttgart JUG November 20 th 2012 Modularity Manage complexity by Encapsulation Information hiding Modularity Manage complexity by Encapsulation Defined interface
More informationTishik Int. University / College of Science / IT Dept. This Course based mainly on online sources ADVANCED MOBILE APPLICATIONS / Spring 1
ADVANCED MOBILE APPLICATIONS / 2018-2019 Spring Tishik Int. University / College of Science / IT Dept. Presented By: Mohammad Salim Al-Othman For 4 th Grade Students This Course based mainly on online
More informationThe Data Access Layer:
EBOOK The Data Access Layer: A PRAGMATIC APPROACH 01 06 Identifying the Optimal DAL Architecture What are Patterns 02 07 Decomposing the Data Layer Pass-Thru 03 08 Eager and Deffered Data Materialization
More informationConcept - first iteration DAM 2.0 & CMIS
Concept - first iteration DAM 2.0 & CMIS CAUTION: this page simply describes the ideas and discussion of the first iteration of the DAM 2.0 & CMIS implementation effort. Some things are still up to date
More informationCourse Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led
Introduction to Azure for Developers Course 10978A: 5 days Instructor Led About this course This course offers students the opportunity to take an existing ASP.NET MVC application and expand its functionality
More informationFast Track Model Based Design and Development with Oracle9i Designer. An Oracle White Paper August 2002
Fast Track Model Based Design and Development with Oracle9i Designer An Oracle White Paper August 2002 Fast Track Model Based Design and Development with Oracle9i Designer Executive Overivew... 3 Introduction...
More informationUser Stories Report. Project. Statistics: Name Start End Weather Forecaster 5/2/ /7/2005
User Stories Report Project Name Start End Weather Forecaster 5/2/2005 10/7/2005 Statistics: User Stories Count: 4 Tasks Count: 8 Bugs Count: 6 Total Spent Time: 70 1. Heat Measurement Device 1.1. Scope
More informationPro Business Applications with Silverlight 4
Pro Business Applications with Silverlight 4 Chris Anderson Apress* Contents at a Glance Contents About the Author Acknowledgments iv v xix xx a Chapter 1: Introduction 1 Who This Book Is For 1 About This
More informationLifecycle-Aware Components Live Data ViewModel Room Library
Lifecycle-Aware Components Live Data ViewModel Room Library Multiple entry points launched individually Components started in many different orders Android kills components on reconfiguration / low memory
More informationLoanPro Software Staging Release
09/14/2016 Welcome to our new Staging Environment! LoanPro Software Staging Release Your company settings and configurations have been copied from your production tenant. This includes all Agent user,
More informationVTRemote An Android Application for the VirtuTrace 3D Simulator
VTRemote An Android Application for the VirtuTrace 3D Simulator Group May14-21 Tanner Borglum Kollin Burns Lukas Herrmann Alexander Maxwell Sheil Patel Project Overview VirtuTrace (VT) Simulation engine
More informationMigrating traditional Java EE applications to mobile
Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16
More informationMDF4 Lib. Product Information
Product Information Table of Contents 1 Overview...3 1.1 Introduction...3 1.2 Application Areas...3 1.3 Overview of Advantages...3 2 Features and Advantages...4 2.1 Supported MDF Versions...4 3 Functional
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationIntroduction to Testing and Maintainable code
Introduction to Testing and Maintainable code Reasons not to write unit tests 1. I don't know how to write tests. 2. Writing tests is too hard. 3. I don't have enough time to write tests. 4. Testing is
More informationMV* Design Patterns. Alexander Nelson August 25, University of Arkansas - Department of Computer Science and Computer Engineering
MV* Design Patterns Alexander Nelson August 25, 2017 University of Arkansas - Department of Computer Science and Computer Engineering Reminders Course Mechanics Course Webpage: you.uark.edu/ahnelson/cmpe-4623-mobile-programming/
More informationDEVELOING MICROSOFT SHAREPOINT SERVER 2013 CORE SOLUTIONS
Education and Support for SharePoint, Office 365 and Azure www.combined-knowledge.com MOC On- Demand DEVELOING MICROSOFT SHAREPOINT SERVER 2013 CORE SOLUTIONS Duration: 2 days About this course In this
More informationFrontend Web Development with Angular. CC BY-NC-ND Carrot & Company GmbH
Frontend Web Development with Angular Agenda Questions Some infos Lecturing Todos Router NgModules Questions? Some Infos Code comments from us were made for improving your code. If you ignore them you
More informationA Better MVC. 300 line view controllers or bust. Dave A guy who thinks too deeply about stuff
A Better MVC 300 line view controllers or bust Dave DeLong @davedelong A guy who thinks too deeply about stuff Heads Up This is all my opinion (! hi legal & pr teams!) Lots of similar terminology View
More informationNews in RSA-RTE CP1
IBM Software Group News in RSA-RTE 8.5.1 CP1 Mattias Mohlin, April 2013 2013 IBM Corporation Build A C++ External Library TC can now generate the make file to use for building the library from a CDT project
More informationData Movement & Tiering with DMF 7
Data Movement & Tiering with DMF 7 Kirill Malkin Director of Engineering April 2019 Why Move or Tier Data? We wish we could keep everything in DRAM, but It s volatile It s expensive Data in Memory 2 Why
More informationContent Development Reference. Including resources for publishing content on the Help Server
Content Development Reference Including resources for publishing content on the Help Server March 2016 Help Server guidance Optimizing your investment in content F1 or TOC? Metadata and editing tools for
More informationSoftware Architect, Deutsche Bank
Santiago Martin-Romani santiago_martin@yahoo.com Software Architect, Deutsche Bank Reasons to use Oracle Coherence Application layer friendly Single holistic view! Scalable! Fast, in-memory speeds, data
More informationLecture 2 Android SDK
Lecture 2 Android SDK This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a
More informationTopic : Object Oriented Design Principles
Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities
More informationCSCIE-275. Guide for Chief Programmers
CSCIE-275 Guide for Chief Programmers Serguei Khramtchenko Apr 2006 1 1. Preface... 3 2. Design walkthrough meeting... 4 2.1 Choosing features for an iteration... 4 2.2 Preparing design for walkthrough
More informationAdvance Mobile& Web Application development using Angular and Native Script
Advance Mobile& Web Application development using Angular and Native Script Objective:- As the popularity of Node.js continues to grow each day, it is highly likely that you will use it when you are building
More informationAn Introduction to Software Architecture. David Garlan & Mary Shaw 94
An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data
More informationCourse 20488A: Developing Microsoft SharePoint Server 2013 Core Solutions
Course 20488A: Developing SharePoint Server 2013 Core Solutions Delivery Method: Instructor-led (classroom) Duration: 5 Days Level: 300 COURSE OVERVIEW About this Course In this course, students learn
More informationXP: Planning, coding and testing. Practice Planning game. Release Planning. User stories. Annika Silvervarg
XP: Planning, coding and testing Annika Silvervarg Practice Planning game Goal: schedule the most important tasks Which features to implement in what order Supports: simple design, acceptance testing,
More information5. Application Layer. Introduction
Book Preview This is a sample chapter of Professional PHP - Building maintainable and secure applications. The book starts with a few theory chapters and after that it is structured as a tutorial. The
More informationOpenACC 2.6 Proposed Features
OpenACC 2.6 Proposed Features OpenACC.org June, 2017 1 Introduction This document summarizes features and changes being proposed for the next version of the OpenACC Application Programming Interface, tentatively
More informationWeb Development 20480: Programming in HTML5 with JavaScript and CSS3. Upcoming Dates. Course Description. Course Outline
Web Development 20480: Programming in HTML5 with JavaScript and CSS3 Learn how to code fully functional web sites from the ground up using best practices and web standards with or without an IDE! This
More informationBonita Workflow. Development Guide BONITA WORKFLOW
Bonita Workflow Development Guide BONITA WORKFLOW Bonita Workflow Development Guide BSOA Workflow v3.0 Software January 2007 Copyright Bull SAS Table of Contents Chapter 1. Overview... 11 1.1 Role of
More informationGUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill. Faculty of Informatics, Masaryk University.
GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill Faculty of Informatics, Masaryk University Spring 2017 PV264: GUI in C++ Spring 2017 1 / 23 Organisation Lectures this
More informationANDROID DEVELOPMENT. Course Details
ANDROID DEVELOPMENT Course Details centers@acadgild.com www.acadgild.com 90360 10796 01 Brief About the Course Android s share of the global smartphone is 81%. The Google Certified Android development
More informationImplementation Architecture
Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2014-11-19 Roman Kern (KTI, TU Graz) Implementation Architecture 2014-11-19 1 / 53 Outline 1 Definition 2
More informationObject Persistence Design Guidelines
Object Persistence Design Guidelines Motivation Design guideline supports architects and developers in design and development issues of binding object-oriented applications to data sources The major task
More informationAgile Architecture. The Why, the What and the How
Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile
More informationJune 27, 2014 EuroClojure 2014 Krakow, Poland. Components. Just Enough
June 27, 2014 EuroClojure 2014 Krakow, Poland Components Just Enough Structure @stuartsierra Presentation Business Logic DB SMS Email Presentation Thread Pool Business Logic Queues Public API Private API
More informationXamarin for C# Developers
Telephone: 0208 942 5724 Email: info@aspecttraining.co.uk YOUR COURSE, YOUR WAY - MORE EFFECTIVE IT TRAINING Xamarin for C# Developers Duration: 5 days Overview: C# is one of the most popular development
More informationFall UI Design and Implementation 1
Fall 2005 6.831 UI Design and Implementation 1 1 Suggested by Daniel Swanton Fall 2005 6.831 UI Design and Implementation 2 2 Suggested by Robert Kwok Fall 2005 6.831 UI Design and Implementation 3 3 Input
More informationWHITE PAPER NGINX An Open Source Platform of Choice for Enterprise Website Architectures
ASHNIK PTE LTD. White Paper WHITE PAPER NGINX An Open Source Platform of Choice for Enterprise Website Architectures Date: 10/12/2014 Company Name: Ashnik Pte Ltd. Singapore By: Sandeep Khuperkar, Director
More informationBuild Testable Client and Service Applications
Build Testable Client and Service Applications Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director MVP
More informationRoadmap. Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica
Roadmap Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica mik@acumatica.com Andrew Boulanov Head of Platform Development Acumatica aboulanov@acumatica.com Acumatica xrp Priorities Platform
More informationFull Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker
Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker 02.03.2017 About Myself DR. ALEXANDER FRIED Chief Technology Officer 2 OUR SOLUTIONS DIGITAL ASSET MANAGEMENT Organize & Share Any File, Any Format,
More informationArchitectural Design. Architectural Design. Software Architecture. Architectural Models
Architectural Design Architectural Design Chapter 6 Architectural Design: -the design the desig process for identifying: - the subsystems making up a system and - the relationships between the subsystems
More informationModern and Responsive Mobile-enabled Web Applications
Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive
More informationArchitecting C++ apps
Architecting C++ apps with a multi-device application platform John JT Thomas Director of Product Management jt@embarcadero.com @FireMonkeyPM blogs.embarcadero.com/jtembarcadero/ What is a multi-device
More informationNext Generation HMI/SCADA High Performance HMI
SESAM 08.09.2016 Next Generation HMI/SCADA High Performance HMI For more information visit us at www.novotek.com Old UI Updated UI New UX User interfaces 1990 Today What s the problem of today? Easy to
More informationForescout. eyeextend for Palo Alto Networks Wildfire. Configuration Guide. Version 2.2
Forescout Version 2.2 Contact Information Forescout Technologies, Inc. 190 West Tasman Drive San Jose, CA 95134 USA https://www.forescout.com/support/ Toll-Free (US): 1.866.377.8771 Tel (Intl): 1.408.213.3191
More informationTagFS: A simple tag-based filesystem
TagFS: A simple tag-based filesystem Scott Bezek sbezek@mit.edu Raza (R07) 6.033 Design Project 1 March 17, 2011 1 Introduction TagFS is a simple yet effective tag-based filesystem. Instead of organizing
More information