Slides for meetup @Talentica Software on 25th January 2020
Topics Covered:
1. Dependency Injection
2. Ng-schematics
3. How to structure your apps
4. Deployment
Hassle-Free Continuous Integration with Real Device TestingBitbar
Watch a live presentation at http://offer.bitbar.com/hassle-free-continuous-integration-combined-with-a-real-device-testing
Thousands of mobile apps are developed and released every day. The fierce competition for attention of end-users has changed the way mobile developers build and test their apps – and how they utilize today’s mobile devops tools to gain advantage of productivity, effectiveness and speed.
Stay tuned and join our upcoming webinars at http://bitbar.com/testing/webinars/
The document discusses principles of effective API design. It begins by defining an API as providing a way for developers to interact with and consume a service. Some key principles discussed include:
1. Designing the API first before implementing backend logic to focus on usability.
2. Choosing an appropriate runtime that allows for scalability, reliability and hybrid cloud/on-premise deployment.
3. Using API contracts to define and enforce policies and service level agreements with consumers.
4. Monitoring API usage over time to understand usage patterns and improve the consumer experience.
5. Iteratively improving APIs through continuous feedback to optimize them over time.
6. Socializing APIs by creating developer port
MOPCON 2014 - Best software architecture in app developmentanistar sung
Talking about how to build smart design and architecture for app development. Let your app can easy develop and deploy components on your app. And more topic of version control and quality improvement.
How native is React Native? | React Native vs Native App DevelopmentDevathon
As a popular development framework, React Native helps you to develop near-native mobile apps. Find out all the differences between React Native and Native App Development:
https://devathon.com/blog/how-native-is-react-native-vs-native-app-development/
#reactjs #app #tech #software #developer #Mobile
Beyond State Machines: Building Modular Applications in LabVIEW Using Public ...JKI
This document discusses a framework for building modular LabVIEW applications using public and private events. Public events allow a module to broadcast data to any number of subscribers, while private events allow external inputs to be passed into a module asynchronously. The framework supports stateful modules with a private process VI that handles events. It promotes a one-to-many communication model and keeps module logic separate from usage. The document reviews example implementations and outlines some limitations of the current event system in LabVIEW.
This document summarizes the agenda for a presentation on UIKit Dynamics. The agenda includes an introduction to core concepts, a discussion of standard dynamic behaviors, custom dynamic behaviors, advanced concepts, UIDynamicItem, using dynamics with collection views, and a conclusion. Standard dynamic behaviors covered include gravity, collisions, attachments, snap, and forces. The document discusses the architecture of UIDynamicAnimator and UIDynamicBehaviors and their roles and characteristics.
This document discusses building clean and flexible Android architecture using principles like separation of concerns, single responsibility, and dependency injection. It recommends patterns like MVVM and VIPER to separate an app's business logic from its UI framework. The key aspects are interfaces for Views, Presenters, Interactors and Repositories. Sample code shows how to implement these patterns using interfaces, dependency injection and testing. The goal is architecture that is easy to iterate on, collaborate with and test independently of Android frameworks and libraries.
Slides for meetup @Talentica Software on 25th January 2020
Topics Covered:
1. Dependency Injection
2. Ng-schematics
3. How to structure your apps
4. Deployment
Hassle-Free Continuous Integration with Real Device TestingBitbar
Watch a live presentation at http://offer.bitbar.com/hassle-free-continuous-integration-combined-with-a-real-device-testing
Thousands of mobile apps are developed and released every day. The fierce competition for attention of end-users has changed the way mobile developers build and test their apps – and how they utilize today’s mobile devops tools to gain advantage of productivity, effectiveness and speed.
Stay tuned and join our upcoming webinars at http://bitbar.com/testing/webinars/
The document discusses principles of effective API design. It begins by defining an API as providing a way for developers to interact with and consume a service. Some key principles discussed include:
1. Designing the API first before implementing backend logic to focus on usability.
2. Choosing an appropriate runtime that allows for scalability, reliability and hybrid cloud/on-premise deployment.
3. Using API contracts to define and enforce policies and service level agreements with consumers.
4. Monitoring API usage over time to understand usage patterns and improve the consumer experience.
5. Iteratively improving APIs through continuous feedback to optimize them over time.
6. Socializing APIs by creating developer port
MOPCON 2014 - Best software architecture in app developmentanistar sung
Talking about how to build smart design and architecture for app development. Let your app can easy develop and deploy components on your app. And more topic of version control and quality improvement.
How native is React Native? | React Native vs Native App DevelopmentDevathon
As a popular development framework, React Native helps you to develop near-native mobile apps. Find out all the differences between React Native and Native App Development:
https://devathon.com/blog/how-native-is-react-native-vs-native-app-development/
#reactjs #app #tech #software #developer #Mobile
Beyond State Machines: Building Modular Applications in LabVIEW Using Public ...JKI
This document discusses a framework for building modular LabVIEW applications using public and private events. Public events allow a module to broadcast data to any number of subscribers, while private events allow external inputs to be passed into a module asynchronously. The framework supports stateful modules with a private process VI that handles events. It promotes a one-to-many communication model and keeps module logic separate from usage. The document reviews example implementations and outlines some limitations of the current event system in LabVIEW.
This document summarizes the agenda for a presentation on UIKit Dynamics. The agenda includes an introduction to core concepts, a discussion of standard dynamic behaviors, custom dynamic behaviors, advanced concepts, UIDynamicItem, using dynamics with collection views, and a conclusion. Standard dynamic behaviors covered include gravity, collisions, attachments, snap, and forces. The document discusses the architecture of UIDynamicAnimator and UIDynamicBehaviors and their roles and characteristics.
This document discusses building clean and flexible Android architecture using principles like separation of concerns, single responsibility, and dependency injection. It recommends patterns like MVVM and VIPER to separate an app's business logic from its UI framework. The key aspects are interfaces for Views, Presenters, Interactors and Repositories. Sample code shows how to implement these patterns using interfaces, dependency injection and testing. The goal is architecture that is easy to iterate on, collaborate with and test independently of Android frameworks and libraries.
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Lucas Jellema
In this slidedeck learn how Oracle JavaScript Extension Toolkit web components enable a higher level of productivity, agility, and maintainability of rich client web applications. The reusable components can be shared across pages, applications, and teams—and even across the global community. The components can be developed separately from the applications that consume them and can be deployed and updated independently. They are also well-suited to be used as the user interface for a microservice that is mashed up in a larger web application or portal. Learn the why and how of Oracle JavaScript Extension Toolkit web components, tooling to use for productivity and agility, and a proven approach for microservice UI implementation.
Spring Cloud Function & Project riff #jsugToshiaki Maki
This document discusses Spring Cloud Function and Project Riff. It provides an overview of serverless computing and functions-as-a-service (FaaS). It introduces Spring Cloud Function as a way to write functions in Spring Boot and deploy them to various FaaS providers. It also describes Project Riff, an open source FaaS platform that runs on Kubernetes and provides event-driven functions through containers and sidecars that connect functions to event brokers. It demonstrates packaging functions as containers and connecting them to brokers through sidecars to handle event streaming and scaling of functions.
This document summarizes the key aspects of building maintainable Android applications using MVP architecture and Dagger 2 for dependency injection. It discusses using MVP to separate concerns into Model, View, and Presenter classes and interfaces. It explains how Dagger 2 can be used to inject dependencies into classes while avoiding direct dependencies between classes. It provides examples of implementing MVP with Dagger 2 modules and components to inject dependencies into activities and presenters. It also discusses using subcomponents to scope dependencies to specific features and mocks for testing.
An app widget allows users to interact with an app's key functionality directly from their home screen. This document discusses what app widgets are, how the app widget framework works, and the steps to create an app widget, including declaring an AppWidgetProvider in the manifest, creating AppWidgetProviderInfo metadata and layout XML files, writing the AppWidgetProvider class, and optionally adding an app widget configuration activity.
This document discusses building maintainable Android apps using Model-View-Presenter (MVP) architecture and Dagger 2 for dependency injection. It recommends separating an app into modules for each concern, like views, presenters, models, and dependencies. It also describes how to set up Dagger components and modules to inject dependencies into activities and presenters while allowing for testing with mocks. Subcomponents are used to scope dependencies for individual activities. The MVP pattern helps avoid tight coupling between components for better testability and maintenance.
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...mfrancis
The document summarizes Richard S. Hall's presentation on iPOJO, an OSGi component framework. iPOJO aims to simplify OSGi development by making things as simple as possible through techniques like plain old Java object (POJO) usage and bytecode manipulation. It allows developers to define components that provide and require services, and supports dynamic properties, lifecycle control, and optional dependencies. The document provides examples of how to define a printer component that provides a printing service, a text editor component that requires the printer service, and how to make the text editor extensible via plugin components.
En los últimos años vimos grandes cambios en Android.
Empezando por Android Studio, dejando de lado Eclipse e incorporando Gradle. Luego el lanzamiento de Android 5 Lollipop, presentando el concepto de Material Design y por último, la incorporación de Android Wear, Auto y TV.
Son muchos cambios en poco tiempo, es por eso que necesitamos mejorar el proceso de desarrollo, incorporando las últimas tecnologías pero sin descuidar la calidad del producto.
En esta charla veremos algunas buenas prácticas para asegurar una aplicación de gran calidad.
The document discusses the Model-View-Presenter (MVP) architectural pattern. MVP separates an application into three main components: the model, the view, and the presenter. The model manages the behavior and data of the application, the view displays the UI and receives user input, and the presenter acts as a coordinator between the model and the view. It describes how MVP improves maintainability, testability and scalability compared to traditional approaches. It also provides examples of implementing MVP on Android and iOS platforms.
This document appears to be a presentation about reusable components for Adobe developers. It discusses different models for reusable components, including direct reuse, direct reuse with context, and extensible components. It provides examples like foundation image and list components. It also covers best practices and anti-patterns to consider when developing reusable components. The presentation was given at a CIRCUIT event hosted by CITYTECH for Adobe developers.
Acercándonos a la Programación Funcional a través de la Arquitectura Hexag...CodelyTV
Slides de la charla "Acercándonos a la Programación Funcional a través de la Arquitectura Hexagonal" en el meetup de Software Crafters Madrid conjuntamente con Scala Madrid el 21/11/2018. Descuento en cursos CodelyTV Pro por verla: http://bit.ly/codelytv19e
Unity and Azure Mobile Services using Prime31 pluginDavid Douglas
1. Azure Mobile Services allow developers to add a cloud backend to their apps in minutes. It offers a free trial and plans for students and startups.
2. There are Unity plugins like BitRave and Prime31 that enable connecting Unity games to Azure Mobile Services. Prime31 is free and well documented.
3. The document demonstrates how to build a demo project using the Prime31 plugin, including downloading the plugin, adding an Azure Mobile Service, and creating a Unity project.
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
This is an overview video that shows the scope of work and technology used within the Red Hat JBoss BRMS and BPMS platforms.
The technology presented builds with GWT, Errai and UberFire as the foundation. Over 2015 we'll be working to make it for end users to consume the bits they need, paying for only what they use, so others can make power web platforms like BRMS and BPMS.
The document discusses Clean Architecture and provides an example of implementing it using a Movie Night app. It describes separating the app into Presentation, Data, and Domain layers with specific responsibilities. The Domain layer contains entities, use cases, and interfaces. The Data layer encapsulates data sources and mappers. The Presentation layer connects everything using ViewModels, LiveData, and observing lifecycle changes. It demonstrates how data flows from the Data layer through UseCases to the Presentation layer and updates the UI.
Google Developer Group(GDG) DevFest Event 2012 Android talkImam Raza
This presentation is Imam Raza's tech talk on "Android" in Google Developer Group DevFest 2012 Event. In the event Mr. Imam Raza condemned recent blasphemy act of Google of not removing blasphemy video by saying "Shame on You". He also appreciated the efforts of minorities who stand with Muslim community on this issue.
He also read following Stanza from Allama Iqbal poem "Jawaab-e-Shikwa", in which Allah is answering to complains of Muslims to Him. In below stanza Allah is praising His prophet Mohammad (peace be upon him) and telling that this universe is made due His beloved prophet Mohammad (peace be upon him). In last part of stanza Allah tells Muslims that if they want to success in this world and there after then they have to make themselves loyal to Mohammad (peace be upon him).
ہو نہ یہ پھول تو بلبل کا ترنم بھی نہ ہو
چمن دہر میں کلیوں کا تبسم بھی نہ ہو
یہ نہ ساقی ہو تو پھر مے بھی نہ ہو،خم بھی نہ ہو
بزم توحید بھی دنیا میں نہ ہو، تم بھی نہ ہو
خیمہ افلاک کا استادة اسی نام سے ہے
نبض ہستی تپش امادة اسی نام سے ہے
دشت میں، دامن کہسارمیں،میدان میں ہے
بحر میں، موج کی ا غوش میں،طوفان میں ہے
چین کے شہر، مراقش کے بیابان میں ہے
اور پوشیدة مسلمان کے ایمان میں ہے
چشم اقوام یہ نظارة ابد تک دیکھے
رفعت شان رفعنالک ذکرک دیکھے
کی محمد سے وفا تو نے تو ہم تیرے ہیں
یہ جہاں چیز ہے کیا، لوح و قلم تیرے ہیں
The fundamental problems of GUI applications and why people choose ReactOliver N
Instead of asking people which JavaScript framework to learn, let's look back into GUI application architecture (which Web Front-end is a case). Then you will understand why people created those library & frameworks and why React became so popular.
This document discusses the benefits of modular software and hardware architectures for mobile devices. It describes how smartphones are becoming more modular with components like secondary displays and accessories. Modular software allows for selective installation of modules and third-party extensions. The document outlines approaches to modular app and framework development including Gradle library modules, multiple APKs, and in-house frameworks. It advocates for layered frameworks to separate concerns like modularity, deployment, and hot-fixing. Overall modular designs improve development, deployment, and the user experience of mobile apps and devices.
The document provides an overview of Spring concepts including annotations, MVC, dependency injection, bean management, and unit testing. It also covers Spring modules, inversion of control, bean scopes, wiring beans, Spring MVC, form validation, pre-populating models, and Spring Security. Code examples demonstrate CRUD operations using Spring, Hibernate and MySQL as well as Spring Security configuration. The document concludes with exercises on bean scopes and annotations.
Philip Shurpik "Architecting React Native app"Fwdays
React Native становится все более зрелым фреймворком для создания кросс платформенных мобильных приложений. Доклад основан на нашем опыте создания production приложения - от архитектуры до тестирования и CI.
Рассмотрим вопрос переиспользования кода при разработке для разных платформ- что и сколько процентов можно переиспользовать и как этого достичь.
Поговорим о том, как можно очень просто сделать offline-first приложение для чтения и создания данных. И чем нам в этом могут помочь Redux и Redux persist.
Разберем, как максимально просто сделать навигацию в приложении.
И, конечно же, какое production приложение без тестирования и continuous integration? Рассмотрим компонентное тестирование с Enzyme и интеграционное с Appium. А также, как максимально приблизить процесс deploy к тому, чему мы привыкли в web, с помощью CodePush.
Introduction to angular with a simple but complete projectJadson Santos
Angular is a framework for building client applications in HTML, CSS and TypeScript. It provides best practices like modularity, separation of concerns and testability for client-side development. The document discusses creating an Angular project, generating components, binding data, using directives, communicating with backend services, routing between components and building for production. Key steps include generating components, services and modules, binding data, calling REST APIs, defining routes and building the app.
Building API data products on top of your real-time data infrastructureconfluent
This talk and live demonstration will examine how Confluent and Gravitee.io integrate to unlock value from streaming data through API products.
You will learn how data owners and API providers can document, secure data products on top of Confluent brokers, including schema validation, topic routing and message filtering.
You will also see how data and API consumers can discover and subscribe to products in a developer portal, as well as how they can integrate with Confluent topics through protocols like REST, Websockets, Server-sent Events and Webhooks.
Whether you want to monetize your real-time data, enable new integrations with partners, or provide self-service access to topics through various protocols, this webinar is for you!
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Lucas Jellema
In this slidedeck learn how Oracle JavaScript Extension Toolkit web components enable a higher level of productivity, agility, and maintainability of rich client web applications. The reusable components can be shared across pages, applications, and teams—and even across the global community. The components can be developed separately from the applications that consume them and can be deployed and updated independently. They are also well-suited to be used as the user interface for a microservice that is mashed up in a larger web application or portal. Learn the why and how of Oracle JavaScript Extension Toolkit web components, tooling to use for productivity and agility, and a proven approach for microservice UI implementation.
Spring Cloud Function & Project riff #jsugToshiaki Maki
This document discusses Spring Cloud Function and Project Riff. It provides an overview of serverless computing and functions-as-a-service (FaaS). It introduces Spring Cloud Function as a way to write functions in Spring Boot and deploy them to various FaaS providers. It also describes Project Riff, an open source FaaS platform that runs on Kubernetes and provides event-driven functions through containers and sidecars that connect functions to event brokers. It demonstrates packaging functions as containers and connecting them to brokers through sidecars to handle event streaming and scaling of functions.
This document summarizes the key aspects of building maintainable Android applications using MVP architecture and Dagger 2 for dependency injection. It discusses using MVP to separate concerns into Model, View, and Presenter classes and interfaces. It explains how Dagger 2 can be used to inject dependencies into classes while avoiding direct dependencies between classes. It provides examples of implementing MVP with Dagger 2 modules and components to inject dependencies into activities and presenters. It also discusses using subcomponents to scope dependencies to specific features and mocks for testing.
An app widget allows users to interact with an app's key functionality directly from their home screen. This document discusses what app widgets are, how the app widget framework works, and the steps to create an app widget, including declaring an AppWidgetProvider in the manifest, creating AppWidgetProviderInfo metadata and layout XML files, writing the AppWidgetProvider class, and optionally adding an app widget configuration activity.
This document discusses building maintainable Android apps using Model-View-Presenter (MVP) architecture and Dagger 2 for dependency injection. It recommends separating an app into modules for each concern, like views, presenters, models, and dependencies. It also describes how to set up Dagger components and modules to inject dependencies into activities and presenters while allowing for testing with mocks. Subcomponents are used to scope dependencies for individual activities. The MVP pattern helps avoid tight coupling between components for better testability and maintenance.
iPOJO - The Simple Life - Richard Hall, Visiting Assistant Professor at Tufts...mfrancis
The document summarizes Richard S. Hall's presentation on iPOJO, an OSGi component framework. iPOJO aims to simplify OSGi development by making things as simple as possible through techniques like plain old Java object (POJO) usage and bytecode manipulation. It allows developers to define components that provide and require services, and supports dynamic properties, lifecycle control, and optional dependencies. The document provides examples of how to define a printer component that provides a printing service, a text editor component that requires the printer service, and how to make the text editor extensible via plugin components.
En los últimos años vimos grandes cambios en Android.
Empezando por Android Studio, dejando de lado Eclipse e incorporando Gradle. Luego el lanzamiento de Android 5 Lollipop, presentando el concepto de Material Design y por último, la incorporación de Android Wear, Auto y TV.
Son muchos cambios en poco tiempo, es por eso que necesitamos mejorar el proceso de desarrollo, incorporando las últimas tecnologías pero sin descuidar la calidad del producto.
En esta charla veremos algunas buenas prácticas para asegurar una aplicación de gran calidad.
The document discusses the Model-View-Presenter (MVP) architectural pattern. MVP separates an application into three main components: the model, the view, and the presenter. The model manages the behavior and data of the application, the view displays the UI and receives user input, and the presenter acts as a coordinator between the model and the view. It describes how MVP improves maintainability, testability and scalability compared to traditional approaches. It also provides examples of implementing MVP on Android and iOS platforms.
This document appears to be a presentation about reusable components for Adobe developers. It discusses different models for reusable components, including direct reuse, direct reuse with context, and extensible components. It provides examples like foundation image and list components. It also covers best practices and anti-patterns to consider when developing reusable components. The presentation was given at a CIRCUIT event hosted by CITYTECH for Adobe developers.
Acercándonos a la Programación Funcional a través de la Arquitectura Hexag...CodelyTV
Slides de la charla "Acercándonos a la Programación Funcional a través de la Arquitectura Hexagonal" en el meetup de Software Crafters Madrid conjuntamente con Scala Madrid el 21/11/2018. Descuento en cursos CodelyTV Pro por verla: http://bit.ly/codelytv19e
Unity and Azure Mobile Services using Prime31 pluginDavid Douglas
1. Azure Mobile Services allow developers to add a cloud backend to their apps in minutes. It offers a free trial and plans for students and startups.
2. There are Unity plugins like BitRave and Prime31 that enable connecting Unity games to Azure Mobile Services. Prime31 is free and well documented.
3. The document demonstrates how to build a demo project using the Prime31 plugin, including downloading the plugin, adding an Azure Mobile Service, and creating a Unity project.
Red Hat JBoss BRMS and BPMS Workbench and Rich Client TechnologyMark Proctor
This is an overview video that shows the scope of work and technology used within the Red Hat JBoss BRMS and BPMS platforms.
The technology presented builds with GWT, Errai and UberFire as the foundation. Over 2015 we'll be working to make it for end users to consume the bits they need, paying for only what they use, so others can make power web platforms like BRMS and BPMS.
The document discusses Clean Architecture and provides an example of implementing it using a Movie Night app. It describes separating the app into Presentation, Data, and Domain layers with specific responsibilities. The Domain layer contains entities, use cases, and interfaces. The Data layer encapsulates data sources and mappers. The Presentation layer connects everything using ViewModels, LiveData, and observing lifecycle changes. It demonstrates how data flows from the Data layer through UseCases to the Presentation layer and updates the UI.
Google Developer Group(GDG) DevFest Event 2012 Android talkImam Raza
This presentation is Imam Raza's tech talk on "Android" in Google Developer Group DevFest 2012 Event. In the event Mr. Imam Raza condemned recent blasphemy act of Google of not removing blasphemy video by saying "Shame on You". He also appreciated the efforts of minorities who stand with Muslim community on this issue.
He also read following Stanza from Allama Iqbal poem "Jawaab-e-Shikwa", in which Allah is answering to complains of Muslims to Him. In below stanza Allah is praising His prophet Mohammad (peace be upon him) and telling that this universe is made due His beloved prophet Mohammad (peace be upon him). In last part of stanza Allah tells Muslims that if they want to success in this world and there after then they have to make themselves loyal to Mohammad (peace be upon him).
ہو نہ یہ پھول تو بلبل کا ترنم بھی نہ ہو
چمن دہر میں کلیوں کا تبسم بھی نہ ہو
یہ نہ ساقی ہو تو پھر مے بھی نہ ہو،خم بھی نہ ہو
بزم توحید بھی دنیا میں نہ ہو، تم بھی نہ ہو
خیمہ افلاک کا استادة اسی نام سے ہے
نبض ہستی تپش امادة اسی نام سے ہے
دشت میں، دامن کہسارمیں،میدان میں ہے
بحر میں، موج کی ا غوش میں،طوفان میں ہے
چین کے شہر، مراقش کے بیابان میں ہے
اور پوشیدة مسلمان کے ایمان میں ہے
چشم اقوام یہ نظارة ابد تک دیکھے
رفعت شان رفعنالک ذکرک دیکھے
کی محمد سے وفا تو نے تو ہم تیرے ہیں
یہ جہاں چیز ہے کیا، لوح و قلم تیرے ہیں
The fundamental problems of GUI applications and why people choose ReactOliver N
Instead of asking people which JavaScript framework to learn, let's look back into GUI application architecture (which Web Front-end is a case). Then you will understand why people created those library & frameworks and why React became so popular.
This document discusses the benefits of modular software and hardware architectures for mobile devices. It describes how smartphones are becoming more modular with components like secondary displays and accessories. Modular software allows for selective installation of modules and third-party extensions. The document outlines approaches to modular app and framework development including Gradle library modules, multiple APKs, and in-house frameworks. It advocates for layered frameworks to separate concerns like modularity, deployment, and hot-fixing. Overall modular designs improve development, deployment, and the user experience of mobile apps and devices.
The document provides an overview of Spring concepts including annotations, MVC, dependency injection, bean management, and unit testing. It also covers Spring modules, inversion of control, bean scopes, wiring beans, Spring MVC, form validation, pre-populating models, and Spring Security. Code examples demonstrate CRUD operations using Spring, Hibernate and MySQL as well as Spring Security configuration. The document concludes with exercises on bean scopes and annotations.
Philip Shurpik "Architecting React Native app"Fwdays
React Native становится все более зрелым фреймворком для создания кросс платформенных мобильных приложений. Доклад основан на нашем опыте создания production приложения - от архитектуры до тестирования и CI.
Рассмотрим вопрос переиспользования кода при разработке для разных платформ- что и сколько процентов можно переиспользовать и как этого достичь.
Поговорим о том, как можно очень просто сделать offline-first приложение для чтения и создания данных. И чем нам в этом могут помочь Redux и Redux persist.
Разберем, как максимально просто сделать навигацию в приложении.
И, конечно же, какое production приложение без тестирования и continuous integration? Рассмотрим компонентное тестирование с Enzyme и интеграционное с Appium. А также, как максимально приблизить процесс deploy к тому, чему мы привыкли в web, с помощью CodePush.
Introduction to angular with a simple but complete projectJadson Santos
Angular is a framework for building client applications in HTML, CSS and TypeScript. It provides best practices like modularity, separation of concerns and testability for client-side development. The document discusses creating an Angular project, generating components, binding data, using directives, communicating with backend services, routing between components and building for production. Key steps include generating components, services and modules, binding data, calling REST APIs, defining routes and building the app.
Building API data products on top of your real-time data infrastructureconfluent
This talk and live demonstration will examine how Confluent and Gravitee.io integrate to unlock value from streaming data through API products.
You will learn how data owners and API providers can document, secure data products on top of Confluent brokers, including schema validation, topic routing and message filtering.
You will also see how data and API consumers can discover and subscribe to products in a developer portal, as well as how they can integrate with Confluent topics through protocols like REST, Websockets, Server-sent Events and Webhooks.
Whether you want to monetize your real-time data, enable new integrations with partners, or provide self-service access to topics through various protocols, this webinar is for you!
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
Voxxed Days Trieste 2024 - Unleashing the Power of Vector Search and Semantic...Luigi Fugaro
Vector databases are redefining data handling, enabling semantic searches across text, images, and audio encoded as vectors.
Redis OM for Java simplifies this innovative approach, making it accessible even for those new to vector data.
This presentation explores the cutting-edge features of vector search and semantic caching in Java, highlighting the Redis OM library through a demonstration application.
Redis OM has evolved to embrace the transformative world of vector database technology, now supporting Redis vector search and seamless integration with OpenAI, Hugging Face, LangChain, and LlamaIndex. This talk highlights the latest advancements in Redis OM, focusing on how it simplifies the complex process of vector indexing, data modeling, and querying for AI-powered applications. We will explore the new capabilities of Redis OM, including intuitive vector search interfaces and semantic caching, which reduce the overhead of large language model (LLM) calls.
WMF 2024 - Unlocking the Future of Data Powering Next-Gen AI with Vector Data...Luigi Fugaro
Vector databases are transforming how we handle data, allowing us to search through text, images, and audio by converting them into vectors. Today, we'll dive into the basics of this exciting technology and discuss its potential to revolutionize our next-generation AI applications. We'll examine typical uses for these databases and the essential tools
developers need. Plus, we'll zoom in on the advanced capabilities of vector search and semantic caching in Java, showcasing these through a live demo with Redis libraries. Get ready to see how these powerful tools can change the game!
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
Superpower Your Apache Kafka Applications Development with Complementary Open...Paul Brebner
Kafka Summit talk (Bangalore, India, May 2, 2024, https://events.bizzabo.com/573863/agenda/session/1300469 )
Many Apache Kafka use cases take advantage of Kafka’s ability to integrate multiple heterogeneous systems for stream processing and real-time machine learning scenarios. But Kafka also exists in a rich ecosystem of related but complementary stream processing technologies and tools, particularly from the open-source community. In this talk, we’ll take you on a tour of a selection of complementary tools that can make Kafka even more powerful. We’ll focus on tools for stream processing and querying, streaming machine learning, stream visibility and observation, stream meta-data, stream visualisation, stream development including testing and the use of Generative AI and LLMs, and stream performance and scalability. By the end you will have a good idea of the types of Kafka “superhero” tools that exist, which are my favourites (and what superpowers they have), and how they combine to save your Kafka applications development universe from swamploads of data stagnation monsters!
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
Manyata Tech Park Bangalore_ Infrastructure, Facilities and Morenarinav14
Located in the bustling city of Bangalore, Manyata Tech Park stands as one of India’s largest and most prominent tech parks, playing a pivotal role in shaping the city’s reputation as the Silicon Valley of India. Established to cater to the burgeoning IT and technology sectors
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid
IBM watsonx Code Assistant for Z, our latest Generative AI-assisted mainframe application modernization solution. Mainframe (IBM Z) application modernization is a topic that every mainframe client is addressing to various degrees today, driven largely from digital transformation. With generative AI comes the opportunity to reimagine the mainframe application modernization experience. Infusing generative AI will enable speed and trust, help de-risk, and lower total costs associated with heavy-lifting application modernization initiatives. This document provides an overview of the IBM watsonx Code Assistant for Z which uses the power of generative AI to make it easier for developers to selectively modernize COBOL business services while maintaining mainframe qualities of service.
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Paul Brebner
Closing talk for the Performance Engineering track at Community Over Code EU (Bratislava, Slovakia, June 5 2024) https://eu.communityovercode.org/sessions/2024/why-apache-kafka-clusters-are-like-galaxies-and-other-cosmic-kafka-quandaries-explored/ Instaclustr (now part of NetApp) manages 100s of Apache Kafka clusters of many different sizes, for a variety of use cases and customers. For the last 7 years I’ve been focused outwardly on exploring Kafka application development challenges, but recently I decided to look inward and see what I could discover about the performance, scalability and resource characteristics of the Kafka clusters themselves. Using a suite of Performance Engineering techniques, I will reveal some surprising discoveries about cosmic Kafka mysteries in our data centres, related to: cluster sizes and distribution (using Zipf’s Law), horizontal vs. vertical scalability, and predicting Kafka performance using metrics, modelling and regression techniques. These insights are relevant to Kafka developers and operators.
The Rising Future of CPaaS in the Middle East 2024Yara Milbes
Explore "The Rising Future of CPaaS in the Middle East in 2024" with this comprehensive PPT presentation. Discover how Communication Platforms as a Service (CPaaS) is transforming communication across various sectors in the Middle East.
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
How GenAI Can Improve Supplier Performance Management.pdfZycus
Data Collection and Analysis with GenAI enables organizations to gather, analyze, and visualize vast amounts of supplier data, identifying key performance indicators and trends. Predictive analytics forecast future supplier performance, mitigating risks and seizing opportunities. Supplier segmentation allows for tailored management strategies, optimizing resource allocation. Automated scorecards and reporting provide real-time insights, enhancing transparency and tracking progress. Collaboration is fostered through GenAI-powered platforms, driving continuous improvement. NLP analyzes unstructured feedback, uncovering deeper insights into supplier relationships. Simulation and scenario planning tools anticipate supply chain disruptions, supporting informed decision-making. Integration with existing systems enhances data accuracy and consistency. McKinsey estimates GenAI could deliver $2.6 trillion to $4.4 trillion in economic benefits annually across industries, revolutionizing procurement processes and delivering significant ROI.
8. CLEAN ARCHITECTURE | VIPER
VIPER IS AN APPLICATION OF CLEAN ARCHITECTURE
TO IOS APPS (AND NOW ANDROID!)
9. V - View
I - Interactor
P - Presenter
E - Entity
R - Routing
VIPER | WHAT DOES IT MEAN?
10. VIEW
Displays what it is told to by the Presenter and relays
user input back to the Presenter.
11. PRESENTER
Contains view logic for preparing content for display (as
received from the Interactor) and for reacting to user
inputs (by requesting new data from the Interactor).
34. VIPER | ENTITY
data class Movie(
val id: String = "",
val posterPath: String = "",
val title: String = "",
val overview: String = "",
val releaseDate : String = ""
)
}
35. VIPER | ROUTER
class HomeRouter(private val context: Context) {
fun navigateToDetail(id: String) {
val intent = Intent(context, DetailActivity::class.java)
intent.putExtra(
DetailActivity.EXTRA_SELECTED_MOVIE_ID, id)
context.startActivity(intent)
}
}
36. VIPER | TESTS
@Mock
lateinit var homePresenterOutput: HomeContracts.HomePresenterOutput
@Mock
lateinit var homeInteractorInput: HomeContracts.HomeInteractorInput
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
homePresenter = HomePresenter(homePresenterOutput, homeInteractorInput)
homePresenter.setPresenterOutput(homePresenterOutput)
given(homeInteractorInput.loadMovies()).will { homePresenter.moviesLoaded(movies) }
}
37. VIPER | TESTS
@Test
fun shouldLoadMoviesWhenViewIsLoaded() {
homePresenter.viewLoaded()
verify(homeInteractorInput).loadMovies()
}
@Test
fun shouldShowMoviesWhenMoviesAreLoaded() {
homePresenter.moviesLoaded(movies)
verify(homePresenterOutput).showMovies(movies)
}
41. VIPER | CONS
• Overkill for small projects
• Overhead for inexperienced teams and risk of
mixing it with different strategies (MVP/MVC/
MVVM)
42. VIPER | CONS
• Overkill for small projects
• Overhead for inexperienced teams and risk of
mixing it with different strategies (MVP/MVC/
MVVM)
• Tedious modules creation without code generators
43. VIPER | CONS
• Overkill for small projects
• Overhead for inexperienced teams and risk of
mixing it with different strategies (MVP/MVC/
MVVM)
• Tedious modules creation without code generators
• Might not be a perfect fit for any kind of project
48. VIPER | PROS
• Improved responsibility balance
• Well-defined contracts
• Smaller classes and methods
• Easier to test
49. VIPER | PROS
• Improved responsibility balance
• Well-defined contracts
• Smaller classes and methods
• Easier to test
• Easier to maintain and add new features
50. VIPER | PROS
• Improved responsibility balance
• Well-defined contracts
• Smaller classes and methods
• Easier to test
• Easier to maintain and add new features
• Possibility to use the same architecture between
iOS and Android projects
52. SECTION | ARCHITECTURE COMPONENTS
"The most important thing you
should focus on is the separation of
concerns in your app.”
https://developer.android.com/topic/libraries/architecture/guide.html
56. SECTION | PRESENTER vs VIEWMODEL
• Both are responsible for preparing the data for
the UI
57. SECTION | PRESENTER vs VIEWMODEL
• Both are responsible for preparing the data for
the UI
• The Presenter has a reference to the view, while
ViewModel doesn’t
58. SECTION | PRESENTER vs VIEWMODEL
• Both are responsible for preparing the data for
the UI
• The Presenter has a reference to the view, while
ViewModel doesn’t
• The ViewModel enables data binding
59. SECTION | PRESENTER vs VIEWMODEL
• Both are responsible for preparing the data for
the UI
• The Presenter has a reference to the view, while
ViewModel doesn’t
• The ViewModel enables data binding
• The ViewModel provides observable data to the
view
60. SECTION | ARCHITECTURE COMPONENTS
"If your UI is complex, consider creating a
Presenter class to handle UI modifications.
This is usually overkill, but might make
your UIs easier to test."
61.
62. VIPER | CONCLUSION
"It is impossible to have
one way of writing apps
that will be the best for
every scenario. (…) If you
already have a good way
of writing Android apps,
you don't need to change."