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.
This document provides an overview of Android development, including:
- What Android is and its key components like the Linux kernel and Dalvik VM.
- The fundamentals of building Android apps using Java and the app framework, including activities, services, content providers, and broadcast receivers.
- How the Android framework API works for each component and their lifecycles.
- How to get started with Android development using the SDK tools, Eclipse plugin, and creating a simple test project and virtual device.
The document provides an overview of the Android platform, including its architecture, core components, and development tools. It describes the Linux kernel, middleware layers, Dalvik VM, application framework, and key pre-installed applications. It also summarizes the Android software development kit, emulator, tools for writing, building, and debugging applications, and different Android device configurations.
This document provides an overview of setting up the Android development environment and creating basic Android projects. It discusses downloading the Java Development Kit (JDK), Eclipse IDE, and Android SDK. It also explains how to install the Android Development Tools (ADT) plugin for Eclipse and configure the SDK and AVD Manager. The document demonstrates how to create a simple "Hello World" project and tabbed application. It also provides information on accessing sensors like GPS and accelerometers as well as using local SQLite and remote databases with Android applications.
Slides for basic Hello World and develop an app for controlling arduino and robot.
This app uses the API call and parse the JSON response from arduino to show the status of robot.
Android is a mobile operating system based on Linux. It has gone through several versions with new features added over time. The core building blocks of Android are activities, views, intents, services, content providers, fragments, and the AndroidManifest.xml file. This document provides tutorials on how to set up Android in Eclipse, make simple Android apps, and describes some of Android's main UI widgets.
Android is an open source software platform that includes an operating system, middleware and key applications. It is based on Linux and developed by Google. Developers write managed code using Java-like language and Google libraries. The architecture includes application, framework, and Android runtime layers. Key framework components include activity manager, resource manager and location manager. Developing Android apps requires knowledge of Java, XML, Android SDK and Eclipse IDE. Important tools include aapt, adb and dx. Application fundamentals include activities, services, broadcast receivers, content providers and intents. Activities present a visual UI, services run in the background, and broadcast receivers receive system broadcasts. The activity lifecycle includes active, paused and stopped states.
Android - From Zero to Hero @ DEVit 2017Ivo Neskovic
The workshop deals with the design and implementation of applications for mobile devices using the Android operating system. Participants work at all stages of the development life-cycle from inception to deployment, whilst considering usability and device capabilities for a mobile application capable of meeting a functional specification. Participants are introduced to the programming environment for application development and have a hands-on approach to programming using the appropriate programming languages.
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.
This document provides an overview of Android development, including:
- What Android is and its key components like the Linux kernel and Dalvik VM.
- The fundamentals of building Android apps using Java and the app framework, including activities, services, content providers, and broadcast receivers.
- How the Android framework API works for each component and their lifecycles.
- How to get started with Android development using the SDK tools, Eclipse plugin, and creating a simple test project and virtual device.
The document provides an overview of the Android platform, including its architecture, core components, and development tools. It describes the Linux kernel, middleware layers, Dalvik VM, application framework, and key pre-installed applications. It also summarizes the Android software development kit, emulator, tools for writing, building, and debugging applications, and different Android device configurations.
This document provides an overview of setting up the Android development environment and creating basic Android projects. It discusses downloading the Java Development Kit (JDK), Eclipse IDE, and Android SDK. It also explains how to install the Android Development Tools (ADT) plugin for Eclipse and configure the SDK and AVD Manager. The document demonstrates how to create a simple "Hello World" project and tabbed application. It also provides information on accessing sensors like GPS and accelerometers as well as using local SQLite and remote databases with Android applications.
Slides for basic Hello World and develop an app for controlling arduino and robot.
This app uses the API call and parse the JSON response from arduino to show the status of robot.
Android is a mobile operating system based on Linux. It has gone through several versions with new features added over time. The core building blocks of Android are activities, views, intents, services, content providers, fragments, and the AndroidManifest.xml file. This document provides tutorials on how to set up Android in Eclipse, make simple Android apps, and describes some of Android's main UI widgets.
Android is an open source software platform that includes an operating system, middleware and key applications. It is based on Linux and developed by Google. Developers write managed code using Java-like language and Google libraries. The architecture includes application, framework, and Android runtime layers. Key framework components include activity manager, resource manager and location manager. Developing Android apps requires knowledge of Java, XML, Android SDK and Eclipse IDE. Important tools include aapt, adb and dx. Application fundamentals include activities, services, broadcast receivers, content providers and intents. Activities present a visual UI, services run in the background, and broadcast receivers receive system broadcasts. The activity lifecycle includes active, paused and stopped states.
Android - From Zero to Hero @ DEVit 2017Ivo Neskovic
The workshop deals with the design and implementation of applications for mobile devices using the Android operating system. Participants work at all stages of the development life-cycle from inception to deployment, whilst considering usability and device capabilities for a mobile application capable of meeting a functional specification. Participants are introduced to the programming environment for application development and have a hands-on approach to programming using the appropriate programming languages.
This document discusses Android architecture components and patterns for developing maintainable Android applications. It introduces Model-View-Controller (MVC), then describes how Model-View-Presenter (MVP) and Model-View-ViewModel (MVVM) improve upon MVC. It outlines the benefits of separating concerns and driving UI from data models. Finally, it explains how the Android Architecture Components library implements MVVM patterns and components like ViewModel, LiveData, and Room for managing lifecycles, data binding and data access in Android apps.
This document discusses how to become an expert Android developer using Google technologies. It recommends using Android Studio as the integrated development environment due to its fast tools for building apps. It also recommends using the Android Jetpack architecture components like ViewModel, LiveData, and Room to accelerate development and build robust apps by eliminating boilerplate code. The document also covers other Jetpack components like Data Binding, Navigation, Lifecycles, and Testing to further improve the development process.
The slides from the Java Meetup which was held in 12th of March 2015 at WSO2 Inc. Sri Lanka. Introduction to Android Development. By : Kasun Delgolla, Chathura Dilan And Inosh Perera, Engineers @ WSO2.
This document provides an introduction to Android development. It discusses what Android is, the benefits of developing for Android, Android architecture and core building blocks. Android is an open source software stack that includes an operating system, middleware and key applications for mobile devices. It is developed by the Open Handset Alliance led by Google. The document outlines Android's architecture including its use of Linux kernel, Dalvik virtual machine and Java programming language. It also describes important Android concepts like activities, views, resources, intents and AndroidManifest.xml.
This document provides an overview of the basics of Android, including:
1. It describes the different versions of the Android OS from 1.0 to 4.0 and the key components of the Android application framework including activities, services, content providers, and broadcast receivers.
2. It discusses setting up the Android development environment and creating a "Hello World" Android application to demonstrate the basic folder structure and manifest file.
3. It explains that the Android manifest file names the application package, describes application components, and declares permissions and libraries required.
This document provides an overview of getting started with Android development. It discusses downloading the necessary software, creating an Android project and basic activity, and understanding key Android building blocks like activities, intents, views, and layouts. It also demonstrates a simple "Hello World" Android app.
The document provides an overview of Android application development. It discusses:
- What Android is and its main software stack components including the operating system, middleware, application framework, and applications.
- The Android architecture including its application components like activities, services, content providers, intents, and broadcast receivers.
- How to get started with Android development by installing the necessary tools and SDK.
- Key aspects of developing Android apps like user interfaces, resources, and the manifest file.
- A simple "Hello World" Android app as an example to demonstrate activities, layouts, strings, and the manifest.
The document provides an overview of Android development including:
- The architecture of the Android OS and applications
- Tools available in the Android SDK for development
- The lifecycle of Android applications
- Future developments such as Android Open Accessory Protocol and Google TV
Dicoding Developer Coaching merupakan webinar, yang membahas tuntas kendala maupun pertanyaan yang sering ditanyakan di Academy Dicoding.
Tema kali ini adalah "Menerapkan Clean Architecture di Android"
Clean Architecture merupakan salah satu arsitektur dalam pengembangan software engineering yang memiliki tujuan separation of concern, alias pemisahan konsentrasi. Sehingga kita bisa membaca kode yang ada di dalam project menjadi lebih mudah. Selain itu ide utama penggunaan Clean Architecture yaitu untuk menghasilkan sistem yang Independent of Framework, Testable, Independent of UI, Independent of Database, dan Independent of External.
Android application development workshop day1Borhan Otour
This document summarizes an Android application development workshop covering building a "Hello World" app over the course of two days. Day 1 focuses on setting up the development environment, creating a new project with activities and views, and using intents to connect activities. Specific topics covered include the Android system architecture, installing the SDK and IDE, building the first app in an emulator, project structure, layouts, and the intent system for inter-activity communication. Day 2 will cover resources and layouts in more depth.
This document provides an overview of Android Architecture Components and Repository pattern. It discusses the key classes in Architecture Components like Activity/Fragment, ViewModel, Repository, and Data Source. It also summarizes the latest release notes for Lifecycle, Room, and Paging libraries. Additionally, it covers the purpose of the Repository pattern in handling data operations and mediating between different data sources. Finally, it lists some common classes used in a Repository like ApiResponse, Resource, and NetworkBoundResource.
The document provides an overview of setting up an Android development environment and creating basic Android applications. It discusses installing the Android SDK and Eclipse IDE, creating Android Virtual Devices, using the Android emulator, and understanding key Android application components like activities, services, and intents. The document also covers building user interfaces with XML layouts, handling user input, and moving between activities.
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. It allows developers to write managed code in Java for the Dalvik virtual machine. The Android SDK provides tools and APIs to develop applications that use features like its application framework, SQLite database, media support and hardware integration. Developers can create Android applications by defining activities, services and content providers and connecting them with intents in the AndroidManifest file.
The document provides an overview of an Android architecture presentation. It discusses key topics like the Android virtual machine, application stack and framework, core libraries, and the main components of an Android application. For application components, it covers the AndroidManifest file, activities and their lifecycle, intents, application resources including strings and drawables, and localization. It provides examples and code snippets for many of these topics. It also lists additional topics that will be covered in part two of the presentation, such as preferences, app widgets, services, and content providers.
The document summarizes an Android meetup event that took place on May 25th 2009. The agenda included talks on Android frameworks, intents, broadcast receivers, test driven development, and Bluetooth app development. The event was hosted by CodeAndroid, a local Android developer group, and supported by Google and HTC Singapore. Attendees learned about key Android concepts like activities and their lifecycles, as well as tools and techniques for building Android apps.
Android application development the basics (2)Aliyu Olalekan
This document provides an overview of the basics of Android application development. It discusses the requirements to develop Android apps including Java knowledge and development tools. It describes the Android architecture and app lifecycle. The typical structure of an Android app is explained including the main manifest file, XML layout files, Java code files and the app building process. Common Android widgets for user input and views are identified. Layout widgets like linear, relative and grid layouts are also covered. Finally, some recommended books on Android development are listed.
Cauê Ferreira, Android Developer do Moip Pagamentos, sala sobre Android Clean Architecture no Android DevConference 2016.
Saiba mais em http://androidconference2016.imasters.com.br/
This document provides an overview of Android development. It discusses the history and versions of Android, the Android architecture including key components like the Linux kernel and Dalvik VM, tools for Android development like Eclipse and the Android SDK, building the basic Android user interface with Views and Adapters, and walking through a "Hello World" Android app. The document is intended to help developers get started with the Android platform.
Android developing & OAuth
This document provides an overview of Android development and OAuth. It begins with an introduction to Android, covering what Android is, its update history, main products and system structure. It then discusses the Android development environment, essential tools, project structure and development flow. Key concepts like activities, intents and the activity lifecycle are explained. The document also introduces OAuth, providing examples of how it allows users to grant access to private resources without sharing credentials. It discusses some debates around OAuth 2.0 and concerns about its lack of signatures and cryptography.
Android is an open-source operating system used for smartphones and tablets. It was developed by Android Inc., which was acquired by Google in 2005. The Android architecture includes the Linux kernel, native libraries, Android runtime including Dalvik virtual machine and core Java libraries, application framework, and applications. Key components of the application framework include activities, services, broadcast receivers, and content providers. Android features include a beautiful UI, connectivity, storage, media support, messaging, web browsing, multi-touch, multi-tasking, and resizable widgets. Major Android versions include Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, and
Android is an open source software stack that includes an operating system, middleware, and key applications built around the Linux kernel. The Android platform was developed by Google along with the Open Handset Alliance, a consortium of technology and mobile companies. The Android architecture consists of Java applications running on a custom virtual machine called Dalvik, with native code libraries for hardware-specific operations, and a set of core applications.
This document discusses Android architecture components and patterns for developing maintainable Android applications. It introduces Model-View-Controller (MVC), then describes how Model-View-Presenter (MVP) and Model-View-ViewModel (MVVM) improve upon MVC. It outlines the benefits of separating concerns and driving UI from data models. Finally, it explains how the Android Architecture Components library implements MVVM patterns and components like ViewModel, LiveData, and Room for managing lifecycles, data binding and data access in Android apps.
This document discusses how to become an expert Android developer using Google technologies. It recommends using Android Studio as the integrated development environment due to its fast tools for building apps. It also recommends using the Android Jetpack architecture components like ViewModel, LiveData, and Room to accelerate development and build robust apps by eliminating boilerplate code. The document also covers other Jetpack components like Data Binding, Navigation, Lifecycles, and Testing to further improve the development process.
The slides from the Java Meetup which was held in 12th of March 2015 at WSO2 Inc. Sri Lanka. Introduction to Android Development. By : Kasun Delgolla, Chathura Dilan And Inosh Perera, Engineers @ WSO2.
This document provides an introduction to Android development. It discusses what Android is, the benefits of developing for Android, Android architecture and core building blocks. Android is an open source software stack that includes an operating system, middleware and key applications for mobile devices. It is developed by the Open Handset Alliance led by Google. The document outlines Android's architecture including its use of Linux kernel, Dalvik virtual machine and Java programming language. It also describes important Android concepts like activities, views, resources, intents and AndroidManifest.xml.
This document provides an overview of the basics of Android, including:
1. It describes the different versions of the Android OS from 1.0 to 4.0 and the key components of the Android application framework including activities, services, content providers, and broadcast receivers.
2. It discusses setting up the Android development environment and creating a "Hello World" Android application to demonstrate the basic folder structure and manifest file.
3. It explains that the Android manifest file names the application package, describes application components, and declares permissions and libraries required.
This document provides an overview of getting started with Android development. It discusses downloading the necessary software, creating an Android project and basic activity, and understanding key Android building blocks like activities, intents, views, and layouts. It also demonstrates a simple "Hello World" Android app.
The document provides an overview of Android application development. It discusses:
- What Android is and its main software stack components including the operating system, middleware, application framework, and applications.
- The Android architecture including its application components like activities, services, content providers, intents, and broadcast receivers.
- How to get started with Android development by installing the necessary tools and SDK.
- Key aspects of developing Android apps like user interfaces, resources, and the manifest file.
- A simple "Hello World" Android app as an example to demonstrate activities, layouts, strings, and the manifest.
The document provides an overview of Android development including:
- The architecture of the Android OS and applications
- Tools available in the Android SDK for development
- The lifecycle of Android applications
- Future developments such as Android Open Accessory Protocol and Google TV
Dicoding Developer Coaching merupakan webinar, yang membahas tuntas kendala maupun pertanyaan yang sering ditanyakan di Academy Dicoding.
Tema kali ini adalah "Menerapkan Clean Architecture di Android"
Clean Architecture merupakan salah satu arsitektur dalam pengembangan software engineering yang memiliki tujuan separation of concern, alias pemisahan konsentrasi. Sehingga kita bisa membaca kode yang ada di dalam project menjadi lebih mudah. Selain itu ide utama penggunaan Clean Architecture yaitu untuk menghasilkan sistem yang Independent of Framework, Testable, Independent of UI, Independent of Database, dan Independent of External.
Android application development workshop day1Borhan Otour
This document summarizes an Android application development workshop covering building a "Hello World" app over the course of two days. Day 1 focuses on setting up the development environment, creating a new project with activities and views, and using intents to connect activities. Specific topics covered include the Android system architecture, installing the SDK and IDE, building the first app in an emulator, project structure, layouts, and the intent system for inter-activity communication. Day 2 will cover resources and layouts in more depth.
This document provides an overview of Android Architecture Components and Repository pattern. It discusses the key classes in Architecture Components like Activity/Fragment, ViewModel, Repository, and Data Source. It also summarizes the latest release notes for Lifecycle, Room, and Paging libraries. Additionally, it covers the purpose of the Repository pattern in handling data operations and mediating between different data sources. Finally, it lists some common classes used in a Repository like ApiResponse, Resource, and NetworkBoundResource.
The document provides an overview of setting up an Android development environment and creating basic Android applications. It discusses installing the Android SDK and Eclipse IDE, creating Android Virtual Devices, using the Android emulator, and understanding key Android application components like activities, services, and intents. The document also covers building user interfaces with XML layouts, handling user input, and moving between activities.
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. It allows developers to write managed code in Java for the Dalvik virtual machine. The Android SDK provides tools and APIs to develop applications that use features like its application framework, SQLite database, media support and hardware integration. Developers can create Android applications by defining activities, services and content providers and connecting them with intents in the AndroidManifest file.
The document provides an overview of an Android architecture presentation. It discusses key topics like the Android virtual machine, application stack and framework, core libraries, and the main components of an Android application. For application components, it covers the AndroidManifest file, activities and their lifecycle, intents, application resources including strings and drawables, and localization. It provides examples and code snippets for many of these topics. It also lists additional topics that will be covered in part two of the presentation, such as preferences, app widgets, services, and content providers.
The document summarizes an Android meetup event that took place on May 25th 2009. The agenda included talks on Android frameworks, intents, broadcast receivers, test driven development, and Bluetooth app development. The event was hosted by CodeAndroid, a local Android developer group, and supported by Google and HTC Singapore. Attendees learned about key Android concepts like activities and their lifecycles, as well as tools and techniques for building Android apps.
Android application development the basics (2)Aliyu Olalekan
This document provides an overview of the basics of Android application development. It discusses the requirements to develop Android apps including Java knowledge and development tools. It describes the Android architecture and app lifecycle. The typical structure of an Android app is explained including the main manifest file, XML layout files, Java code files and the app building process. Common Android widgets for user input and views are identified. Layout widgets like linear, relative and grid layouts are also covered. Finally, some recommended books on Android development are listed.
Cauê Ferreira, Android Developer do Moip Pagamentos, sala sobre Android Clean Architecture no Android DevConference 2016.
Saiba mais em http://androidconference2016.imasters.com.br/
This document provides an overview of Android development. It discusses the history and versions of Android, the Android architecture including key components like the Linux kernel and Dalvik VM, tools for Android development like Eclipse and the Android SDK, building the basic Android user interface with Views and Adapters, and walking through a "Hello World" Android app. The document is intended to help developers get started with the Android platform.
Android developing & OAuth
This document provides an overview of Android development and OAuth. It begins with an introduction to Android, covering what Android is, its update history, main products and system structure. It then discusses the Android development environment, essential tools, project structure and development flow. Key concepts like activities, intents and the activity lifecycle are explained. The document also introduces OAuth, providing examples of how it allows users to grant access to private resources without sharing credentials. It discusses some debates around OAuth 2.0 and concerns about its lack of signatures and cryptography.
Android is an open-source operating system used for smartphones and tablets. It was developed by Android Inc., which was acquired by Google in 2005. The Android architecture includes the Linux kernel, native libraries, Android runtime including Dalvik virtual machine and core Java libraries, application framework, and applications. Key components of the application framework include activities, services, broadcast receivers, and content providers. Android features include a beautiful UI, connectivity, storage, media support, messaging, web browsing, multi-touch, multi-tasking, and resizable widgets. Major Android versions include Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, and
Android is an open source software stack that includes an operating system, middleware, and key applications built around the Linux kernel. The Android platform was developed by Google along with the Open Handset Alliance, a consortium of technology and mobile companies. The Android architecture consists of Java applications running on a custom virtual machine called Dalvik, with native code libraries for hardware-specific operations, and a set of core applications.
This document summarizes key aspects of the Android operating system. It discusses what Android is, its architecture, versions, advantages and disadvantages compared to iOS. The architecture section explains that Android is based on the Linux kernel and uses various open source libraries and frameworks. It also summarizes the main applications building blocks in Android like activities, intents, services and content providers. The document concludes by comparing some differences between Android and iOS like open source vs proprietary, supported features and customization options.
This document provides an introduction and overview of the Android mobile operating system. It discusses Android's open source nature, its components including the Linux kernel and Dalvik virtual machine, the developer tools and SDK, and how developers can build applications and integrate with, extend, and replace existing Android components. The document also provides an update on the latest Android news including the announcement and early SDK releases, the Android Developer Challenge program, and upcoming SDK and device releases.
This document discusses an architecture bootcamp for iOS and Android application development held in Mauritania in 2014. It focuses on teaching the architectures and tools for building mobile apps on both Android and iOS platforms, with the goal of participants quickly learning and adopting the skills.
The document discusses the architecture of iOS and features of good code. It describes the key frameworks in iOS architecture like CocoaTouch, Core Services, and Core OS that provide infrastructure and support key technologies. It emphasizes writing efficient code by executing computations on background threads, releasing resources when not needed, using right size images, and reusing as much code as possible. It also discusses organizing code well by keeping models clean, using inheritance for common components, and separating responsibilities across classes and categories.
Android is an open source software platform for mobile devices based on the Linux kernel. It includes APIs for app development, core applications like email and maps, and services like notifications and activity management. At its core are the Dalvik virtual machine, C/C++ libraries, and underlying Linux system functionality that allow Android to run efficiently on various hardware configurations and platforms.
The document provides an overview of the Android platform architecture. It describes Android as an open source mobile operating system led by the Open Handset Alliance. The key components of the Android architecture include the Linux kernel, libraries, Android runtime using the Dalvik virtual machine, framework APIs, and applications. Applications are built using activities, services, content providers and broadcast receivers. The document also discusses Android security using a permission-based model.
Session 1 - Introduction to iOS 7 and SDKVu Tran Lam
This document provides an overview and introduction to iOS application development. It discusses the iOS 7 SDK, Xcode developer tools, Objective-C programming language, and building a simple "Hello World" iOS app. Key topics covered include the iOS architecture and frameworks, a roadmap for becoming an iOS developer, and documentation resources for developing iOS 7 applications.
The document provides a history of Apple Inc. including:
- Steve Jobs, Steve Wozniak, and Mike Markkula formed Apple Computer in 1976 after taking out a $250,000 loan.
- The Apple I was their first product in 1976 using a TV as a display. The Apple II followed in 1977 and sold over 2 million units.
- The Macintosh launched in 1984 and was the first personal computer with a graphical user interface, helping to popularize desktop publishing.
Introduction to Android, Architecture & ComponentsVijay Rastogi
Android is an open-source software platform based on the Linux kernel and developed by Google. It consists of Java applications that run in a Dalvik virtual machine. The document discusses the key components of Android including activities, services, content providers, broadcast receivers, intents, notifications, resources, fragments, and widgets. It provides a detailed history of Android versions from 1.0 to 4.3 and their new features. The architecture of Android and how the different application building blocks interact and communicate is also explained.
Study of similiarities and difference between android and ios system archiitecture in operating system perspective like thread management process management memory management etc more technical details
This document provides an overview of the iOS platform architecture and development options. It describes the four main layers of the iOS architecture: Cocoa Touch layer, Media layer, Core Services layer, and Core OS layer. It also discusses the differences between native apps, web apps, and hybrid apps. Finally, it outlines several development options for building apps for iOS, including using Apple's Xcode IDE with Objective-C or other tools that allow developing with languages like JavaScript, HTML, CSS, C#, or Lua.
Google acquired Android Inc. in 2005 and launched the Android mobile operating system in 2007 with the Open Handset Alliance, including companies like Qualcomm. Android uses the Linux kernel for core functions and relies on Java for application development. It has an open source model and uses components like SQLite for data storage, Dalvik virtual machine, and integrated browser. While popular for its openness and customization, Android faces security and compatibility challenges. Overall it has become very successful with the mobile market.
This document provides an overview of the Android operating system, including its history, architecture, versions, features, advantages, and disadvantages. Android was founded in 2003 and was later acquired by Google in 2005. It uses an open source Linux kernel and is developed by the Open Handset Alliance. The architecture consists of four layers - the Linux kernel, native libraries, the Android runtime (Dalvik virtual machine), and applications. Key features include multi-tasking, a rich application ecosystem, and integration with Google services. Advantages are customization and openness, while disadvantages include inconsistent designs between apps and battery drain issues on some devices.
This Presentation (Android) is prepared by me for Education Purpose. And be careful for Hyperlinks. There are so many Hyperlinks. Just click on them.
Thank You
Mr. SOM
iOS Basics
The document provides an overview of iOS, including its architecture, frameworks, design patterns, and application life cycle. It discusses the core OS, core services, media, and Cocoa Touch layers. It describes the UIKit and Foundation frameworks, as well as design patterns like MVC, delegation, and managed memory. It also outlines the application objects, MVC roles, and the stages an app goes through from launch to termination.
"Architecting and testing large iOS apps: lessons from Facebook". Adam Ernst,...Yandex
In 2012 Facebook relaunched their iOS app to use native code. This was a big shift in architecting and implementing the Facebook app experience, the most widely used third party app on the entire iOS platform. Adam Ernst will speak about how the decision was made to switch to native code and how the company prepared to rewrite the app. He will share an inside look at the APIs and technical architecture Facebook uses to enable dozens of iOS developers to work on the same application. Automated testing is very important to Facebook, so Adam will also speak about how Facebook uses testing on iOS to keep the app reliable.
This document contains a lecture on iOS architecture and MVC. It discusses the core OS layers, Cocoa Touch framework, and how the MVC pattern is implemented. Key objects in the MVC pattern like models, views and controllers are defined. It also outlines communication methods between these objects like notifications and KVO. The document concludes with a discussion of Xcode projects and preparing for the next lecture.
The document discusses securing Android applications. It covers the Android architecture, permissions model, data storage, content providers, networking, SQLite encryption, static analysis, and obfuscation. The key topics are the Dalvik VM, sandbox model, permissions, signing applications, minimizing permissions, HTTPS for networking, SQLite encryption, Lint for static analysis, and Proguard for obfuscation.
Esta charla comprende las lecciones aprendidas convirtiendo la app de Android de Teambox (una app repleta de deuda técnica y con un alto nivel de acoplamiento entre clases), en la versión actual de Redbooth, que intenta cumplir la arquitectura Hexagonal y los principios SOLID. Durante la exposición explicaremos como fuimos desenredando el código paso a paso; como aplicamos por partes los conceptos de la arquitectura hexagonal; como dejamos de lado componentes del framework de Android que dificultaban el mantenimiento de la app; y que errores cometimos, como los solucionamos y como se podrían haber evitado.
This document provides an overview of key concepts in Android development including:
- Android components like Activities, Fragments, Services, etc.
- The application and activity lifecycles and how activities can move between states like active, paused, and stopped.
- Common Android development tools and how to structure an Android project with activities, fragments, and other components.
- Basic Android app architecture including the Linux kernel, Java framework layers, and how apps are packaged as APK files.
This document provides information about an Android development community and lessons on activities and fragments. It summarizes the key topics covered in an online Android course, including activity and fragment lifecycles, saving persistent data, and communicating between fragments. It also introduces mentors from the community and examples of how to create activities and fragments and handle configuration changes and backgrounding.
The document provides an overview of Android app development using Java. It discusses key Android concepts like activities, intents, services, and broadcast receivers. It also covers the Android development tools and toolchain, including the emulator. The document demonstrates concepts like activities, intents, services through sample code. It discusses other topics like threads, preferences, security and performance best practices for Android.
The document discusses Android development tools and the Android architecture. It describes the key components of the Android software stack including the Linux kernel, native libraries, Android runtime, application framework, and applications. It explains the role of the Dalvik virtual machine and core Android libraries. It also discusses the Android development tools plugin (ADT), Android emulator, and various tools used for app development like DDMS, ADB, and AAPT. Finally, it covers the Android activity lifecycle and methods.
This document provides a quick introduction to Android development. It discusses Android Studio as the primary IDE for Android development and its features. It also covers templates, running apps, building UIs with code and XML, using resources and the R class, basic event handling, Logcat for viewing logs, and best practices for logging.
David Marques gave a presentation on Android app development to a user group in São Paulo, Brazil. He began by introducing himself and his background in mobile development. The presentation covered the core components of Android apps including activities, services, content providers, and intent receivers. Marques explained how each component works and provided code examples. He emphasized doing background work in services on separate threads to avoid blocking the main thread.
The document describes a .NET template solution architecture that is flexible, maintainable, sustainable, understandable, testable, and allows for easy addition of new features. It recommends layering the solution into projects for the frontend, services, data access, entities/DTOs, repositories, view models, inversion of control, and mapping entities to view models. Each layer has specific responsibilities and dependencies designed to separate concerns and enable loose coupling between layers.
A Separation of Concerns: Clean Architecture on AndroidOutware Mobile
Presented at YOW! Connected 2015 by Kamal Kamal Mohamed & Ryan Hodgman
As an Android developer, I want to deliver features without making compromises on code quality.
Scenario 1 - Given I am dealing with 1000+ line activities, When I have to develop a complicated feature, Then I waste time orienting myself and fixing bugs.
Scenario 2 - Given I have integrated a backend API directly into my app logic, When that API changes, Then I have to refactor large segments of unrelated logic in order to utilise the new API.
Scenario 3 - Given I have cleanly architected my application, When business/presentation/backend logic changes, Then I can easily update the relevant code without breaking unrelated features!
In this talk, two Android developers will present their take on what a cleanly architected app looks like and why it makes our lives easier. A well-defined separation of concerns has benefits not just for our sanity as developers, but also for the project workflow as it allows multiple developers to collaborate on a single feature with ease. We will be exploring how the domain-driven approach can improve code clarity, allow you to easily write tests, and provide a scalable infrastructure for you to quickly iterate on. Join us on our path of discovery as we discuss the advantages, drawbacks and implementation specifics in the context of a small sample project.
This document provides an overview of best practices for Android development. It discusses topics such as UI design, including layouts and styles; using the action bar for search and progress indicators; accessibility; network connections; asynchronous tasks and services; fragments and navigation patterns; geolocation and performance; dependency injection; and recommended tools and libraries. The document provides code snippets and links to the Android developer documentation for further information on these topics.
This is a basic crash course for android development covers:
Android Studio,Hello World Application,Application Components,Application Resources,User Interface,Good UI,Play Store
Android development - the basics, MFF UK, 2012Tomáš Kypta
This document provides an overview of Android development basics. It discusses the Android platform, ecosystem, and SDK tools. It describes key Android concepts like activities, services, content providers, and broadcasts. It also covers user interface components, resources, handling different device configurations, fragments, threads, menus, dialogs, notifications and more. The document is intended as an introduction to the fundamentals of Android development.
MAX is a realtime messaging and activity stream engine that was originally designed for the Universitat Politècnica de Catalunya's social intranet. It provides a RESTful API with over 80 endpoints for multi-source user activity streams, asynchronous messaging and conversations. Key features include an activity stream, conversations, notifications, and the ability to aggregate external sources. It is fully deployable on-premises and addresses security and privacy concerns.
Android is a software stack that includes an operating system, middleware and key applications for mobile devices. It uses the Java programming language and includes features like application frameworks, SQLite for storage, and support for common media formats. The Android architecture consists of applications, an application framework, libraries and services, the Android runtime and the Linux kernel. Activities are the basic building blocks of Android apps and have a defined lifecycle of states they move through as the user interacts with the app.
This document discusses polyglot persistence using Spring Data. It describes how Spring Data provides a common programming model for data access across different data stores like SQL databases, NoSQL databases and more. It provides examples of defining entities, repository interfaces and queries using Spring Data's JPA, MongoDB and QueryDSL modules. Spring Data aims to improve developer productivity by simplifying data access code and enabling applications to use multiple data sources.
Ionic2, les développeurs web à l'assaut du mobile, BDX I/O le 21/10/2016Loïc Knuchel
Le mobile est maintenant majoritaire et continue toujours de croître. Mais son écosystème technique est encore très spécifique et demande des compétences pointues. Venez découvrir Ionic, le framework d’UI qui permet aux développeurs web de faire des applications mobiles de qualité avec des technologies web.
FYI readers: SlideShare somewhat messed up the presentation, but it's still quite readable all the way (except slide 44, SlideShare doesn't seem to like the "thinking emoji"). Also, I made sure that the speaker notes gave a lot of insight. I hope this is useful to you!
** SUMMARY OF THE TALK:
Your product (or your client’s product) is kicking butt, and the userbase is ever growing, allowing to hire more engineers to build more experimental features, more interactions, more experiences in your product. Soon, a dreadful problem starts arising: how do you ensure that one team’s work in your crowd of engineers doesn’t unwillingly break or impact another team’s front-end work? How do you scale humans on the front-end while limiting risk?
We’ll briefly look at how that problem is being solved on the back-end in large companies (Google, Apple, Uber, Salesforce) to see what we can learn from it for the front-end, and then we’ll dive in the opportunities that current front-end framework are leveraging. We’ll discuss component-based approaches in particular, since they’re designed as a solution to that problem, and will review the solutions they bring, but also the new challenges, and what future we can expect to them.
Embedded machine learning-based road conditions and driving behavior monitoringIJECEIAES
Car accident rates have increased in recent years, resulting in losses in human lives, properties, and other financial costs. An embedded machine learning-based system is developed to address this critical issue. The system can monitor road conditions, detect driving patterns, and identify aggressive driving behaviors. The system is based on neural networks trained on a comprehensive dataset of driving events, driving styles, and road conditions. The system effectively detects potential risks and helps mitigate the frequency and impact of accidents. The primary goal is to ensure the safety of drivers and vehicles. Collecting data involved gathering information on three key road events: normal street and normal drive, speed bumps, circular yellow speed bumps, and three aggressive driving actions: sudden start, sudden stop, and sudden entry. The gathered data is processed and analyzed using a machine learning system designed for limited power and memory devices. The developed system resulted in 91.9% accuracy, 93.6% precision, and 92% recall. The achieved inference time on an Arduino Nano 33 BLE Sense with a 32-bit CPU running at 64 MHz is 34 ms and requires 2.6 kB peak RAM and 139.9 kB program flash memory, making it suitable for resource-constrained embedded systems.
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapte...University of Maribor
Slides from talk presenting:
Aleš Zamuda: Presentation of IEEE Slovenia CIS (Computational Intelligence Society) Chapter and Networking.
Presentation at IcETRAN 2024 session:
"Inter-Society Networking Panel GRSS/MTT-S/CIS
Panel Session: Promoting Connection and Cooperation"
IEEE Slovenia GRSS
IEEE Serbia and Montenegro MTT-S
IEEE Slovenia CIS
11TH INTERNATIONAL CONFERENCE ON ELECTRICAL, ELECTRONIC AND COMPUTING ENGINEERING
3-6 June 2024, Niš, Serbia
A review on techniques and modelling methodologies used for checking electrom...nooriasukmaningtyas
The proper function of the integrated circuit (IC) in an inhibiting electromagnetic environment has always been a serious concern throughout the decades of revolution in the world of electronics, from disjunct devices to today’s integrated circuit technology, where billions of transistors are combined on a single chip. The automotive industry and smart vehicles in particular, are confronting design issues such as being prone to electromagnetic interference (EMI). Electronic control devices calculate incorrect outputs because of EMI and sensors give misleading values which can prove fatal in case of automotives. In this paper, the authors have non exhaustively tried to review research work concerned with the investigation of EMI in ICs and prediction of this EMI using various modelling methodologies and measurement setups.
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...IJECEIAES
Medical image analysis has witnessed significant advancements with deep learning techniques. In the domain of brain tumor segmentation, the ability to
precisely delineate tumor boundaries from magnetic resonance imaging (MRI)
scans holds profound implications for diagnosis. This study presents an ensemble convolutional neural network (CNN) with transfer learning, integrating
the state-of-the-art Deeplabv3+ architecture with the ResNet18 backbone. The
model is rigorously trained and evaluated, exhibiting remarkable performance
metrics, including an impressive global accuracy of 99.286%, a high-class accuracy of 82.191%, a mean intersection over union (IoU) of 79.900%, a weighted
IoU of 98.620%, and a Boundary F1 (BF) score of 83.303%. Notably, a detailed comparative analysis with existing methods showcases the superiority of
our proposed model. These findings underscore the model’s competence in precise brain tumor localization, underscoring its potential to revolutionize medical
image analysis and enhance healthcare outcomes. This research paves the way
for future exploration and optimization of advanced CNN models in medical
imaging, emphasizing addressing false positives and resource efficiency.
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMHODECEDSIET
Time Division Multiplexing (TDM) is a method of transmitting multiple signals over a single communication channel by dividing the signal into many segments, each having a very short duration of time. These time slots are then allocated to different data streams, allowing multiple signals to share the same transmission medium efficiently. TDM is widely used in telecommunications and data communication systems.
### How TDM Works
1. **Time Slots Allocation**: The core principle of TDM is to assign distinct time slots to each signal. During each time slot, the respective signal is transmitted, and then the process repeats cyclically. For example, if there are four signals to be transmitted, the TDM cycle will divide time into four slots, each assigned to one signal.
2. **Synchronization**: Synchronization is crucial in TDM systems to ensure that the signals are correctly aligned with their respective time slots. Both the transmitter and receiver must be synchronized to avoid any overlap or loss of data. This synchronization is typically maintained by a clock signal that ensures time slots are accurately aligned.
3. **Frame Structure**: TDM data is organized into frames, where each frame consists of a set of time slots. Each frame is repeated at regular intervals, ensuring continuous transmission of data streams. The frame structure helps in managing the data streams and maintaining the synchronization between the transmitter and receiver.
4. **Multiplexer and Demultiplexer**: At the transmitting end, a multiplexer combines multiple input signals into a single composite signal by assigning each signal to a specific time slot. At the receiving end, a demultiplexer separates the composite signal back into individual signals based on their respective time slots.
### Types of TDM
1. **Synchronous TDM**: In synchronous TDM, time slots are pre-assigned to each signal, regardless of whether the signal has data to transmit or not. This can lead to inefficiencies if some time slots remain empty due to the absence of data.
2. **Asynchronous TDM (or Statistical TDM)**: Asynchronous TDM addresses the inefficiencies of synchronous TDM by allocating time slots dynamically based on the presence of data. Time slots are assigned only when there is data to transmit, which optimizes the use of the communication channel.
### Applications of TDM
- **Telecommunications**: TDM is extensively used in telecommunication systems, such as in T1 and E1 lines, where multiple telephone calls are transmitted over a single line by assigning each call to a specific time slot.
- **Digital Audio and Video Broadcasting**: TDM is used in broadcasting systems to transmit multiple audio or video streams over a single channel, ensuring efficient use of bandwidth.
- **Computer Networks**: TDM is used in network protocols and systems to manage the transmission of data from multiple sources over a single network medium.
### Advantages of TDM
- **Efficient Use of Bandwidth**: TDM all
Literature Review Basics and Understanding Reference Management.pptxDr Ramhari Poudyal
Three-day training on academic research focuses on analytical tools at United Technical College, supported by the University Grant Commission, Nepal. 24-26 May 2024
Using recycled concrete aggregates (RCA) for pavements is crucial to achieving sustainability. Implementing RCA for new pavement can minimize carbon footprint, conserve natural resources, reduce harmful emissions, and lower life cycle costs. Compared to natural aggregate (NA), RCA pavement has fewer comprehensive studies and sustainability assessments.
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesChristina Lin
Traditionally, dealing with real-time data pipelines has involved significant overhead, even for straightforward tasks like data transformation or masking. However, in this talk, we’ll venture into the dynamic realm of WebAssembly (WASM) and discover how it can revolutionize the creation of stateless streaming pipelines within a Kafka (Redpanda) broker. These pipelines are adept at managing low-latency, high-data-volume scenarios.
4. Software Architecture
● “Intellectually graspable” abstraction of a complex system (wiki)
● Multitude of stakeholders
● Separation of concerns - one reason to change
● Run away from the real world (Android, DB, Internet)
● Testability
● SRP + Testability + … = Maintainability, Scalability, etc...
5. The olden times - God activitypublic final class UsersActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
new ListUsers().execute();
}
private final class ListUsers extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// final SQLiteOpenHelper sqLiteOpenHelper = ...
// JsonObjectRequest jsObjRequest = new JsonObjectRequest
// (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
// MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
// showData(user);
return null;
}
}
}
6. The olden times - God activitypublic final class UsersActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
new ListUsers().execute();
}
private final class ListUsers extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// final SQLiteOpenHelper sqLiteOpenHelper = ...
// JsonObjectRequest jsObjRequest = new JsonObjectRequest
// (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
// MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
// showData(user);
return null;
}
}
}
7. The olden times - God activitypublic final class UsersActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
new ListUsers().execute();
}
private final class ListUsers extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// final SQLiteOpenHelper sqLiteOpenHelper = ...
// JsonObjectRequest jsObjRequest = new JsonObjectRequest
// (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
// MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
// showData(user);
return null;
}
}
}
NOT testable
8. The olden times - God activitypublic final class UsersActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
new ListUsers().execute();
}
private final class ListUsers extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// final SQLiteOpenHelper sqLiteOpenHelper = ...
// JsonObjectRequest jsObjRequest = new JsonObjectRequest
// (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
// MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
// showData(user);
return null;
}
}
}
NOT testable
Stakeholders?
9. The olden times - God activitypublic final class UsersActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
new ListUsers().execute();
}
private final class ListUsers extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// final SQLiteOpenHelper sqLiteOpenHelper = ...
// JsonObjectRequest jsObjRequest = new JsonObjectRequest
// (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
// MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
// showData(user);
return null;
}
}
}
NOT testable
Stakeholders?
SRP?
10. The olden times - God activitypublic final class UsersActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
new ListUsers().execute();
}
private final class ListUsers extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
// final SQLiteOpenHelper sqLiteOpenHelper = ...
// JsonObjectRequest jsObjRequest = new JsonObjectRequest
// (Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
// MySingleton.getInstance(this).addToRequestQueue(jsObjRequest);
// showData(user);
return null;
}
}
}
NOT testable
Stakeholders?
SRP?
Mixed with
Android!
16. The olden times - MVP
● Better
SRP
Testable-ish
Stakeholders?
17. The olden times - MVP
● Better
SRP
Testable-ish
Mixed with
Android!
Stakeholders?
18. The olden times - MVP + Managers
● Sorta OK
Manager
this
Manager
that
19. The olden times - MVP + Managers
● Sorta OK
Manager
this
Manager
that
SRP - meh ok
20. The olden times - MVP + Managers
● Sorta OK
Manager
this
Manager
that
SRP - meh ok
Stakeholders
21. The olden times - MVP + Managers
● Sorta OK
Manager
this
Manager
that
SRP - meh ok
Stakeholders
Mixed with
Android!
22. The olden times - MVP + Managers
● Sorta OK
Manager
this
Manager
that
SRP - meh ok
Stakeholders
Mixed with
Android!
Testable-ish
Tend to be
HUGE!!!
35. All dependencies go to the
database
Core of the app
3 tier Clean
All dependencies go
to the business layer
Abstraction
Business is the core of
the app
50. Entities
● AKA Domain Objects, Business Objects
● No interaction with the gritty details, no database, no Internet
● Simple business logic constrained to itself or its children
● Immutable
● No persistence methods (stay tuned)
54. Use Cases
● AKA Interactors, Business Services
● Small piece of business logic acting on one or more entities
● Must be able to describe its job by using common language (no details)
● Don’t skip use cases
55. Use Cases
Example: Transfer money to account use case
● Load two accounts
● Do some validation
● If OK transfer money
● Save the changes
Note the simple common language
59. Presenters
● Always have accompanied view
● Gather info and send them to view
● Don’t know concrete view implementation (view as output port)
● But tied to its lifecycle
● User input delegated to presenters
● Usually map entities to viewmodels
62. Device
● Gritty Android stuff
● NOT Db, Internet or UI - separate component
● Sensors, alarms, notifications, players, etc…
● Define wrappers around Android objects in Device component
● Define interface that wrapper will be implementing in domain component
to serve as an output port
65. DB & API
● Also access to the real world
● This time real world are a database and the Internet
● Classes such as SQLiteOpenHelper, DbModels, DAOs, Retrofit interfaces
and services, API models, JSON parsers…
● If you are using database only, DAO can implement a repository
● Inner layers use entities, so you should also return entities -> mappers
81. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
82. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
UI
83. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
UI
Domain
84. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
UI
DataDomain
85. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
UI
Device
DataDomain
86. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
UI
Device
Outer worldDataDomain
87. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
UI
Device
Outer worldDataDomain
SRP
88. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
89. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
90. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Not mixed with
Android!
91. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Not mixed with
Android!
92. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Not mixed with
Android!
93. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!
94. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!
95. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!
UI designer cares about this
96. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!
UI designer cares about this
UX designer cares about this
97. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!
UI designer cares about this
UX designer cares about this
BA, QA, PM care about this
98. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!
UI designer cares about this
UX designer cares about this
BA, QA, PM care about this
Nobody cares about this
99. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!
UI designer cares about this
UX designer cares about this
BA, QA, PM care about this
Backend guys care about
this
Nobody cares about this
100. Is it better?
Use
case 1
Use
case 2
Use
case 3
...
Repository
Location
Notifications
...
SRP
Testable
Not mixed with
Android!Stakeholders
are satisfied