Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BDT TA 2020
Android Session
Nama materi: Menjadi Android Developer Expert
Narasumber: Ahmad Arif Faizin (Google Associate Android Developer, Curriculum Developer Dicoding)
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...DicodingEvent
Jetpack is a suite of libraries and architecture components that help developers follow best practices to reduce boilerplate code and write code that is compatible across Android versions and devices. It includes libraries for UI components, navigation, data binding, room, lifecycle management, and more. Using Jetpack can help developers focus on the code that matters by eliminating redundant code and ensuring compatibility.
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...DicodingEvent
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BDT TA 2020
Web Session
Nama materi: Menjadi Front-End Web Developer Expert
Narasumber: Dimas Maulana Dwi Saputra (Google Associate Android Developer, Curriculum Developer Dicoding)
This document introduces React Native, a framework for building mobile apps using React. It allows building Android and iOS apps with shared code. React Native uses a virtual DOM for fast rendering. Components manage state and receive data through props. Lifecycle methods handle mounting, updating, and unmounting. Setting up requires Node.js, React Native CLI, and Android Studio or Xcode. Hot reloading, Flexbox layouts, and libraries like Lottie and React Navigation make development easier.
Angular 2 is a new version of AngularJS that is currently in alpha. It embraces modern web standards like Shadow DOM and Web Workers. Angular 2 components replace directives and use classes instead of controllers. Templates are now called views. Two-way binding and ng-repeat are changed. The API is still changing but you can try it now on angular.io.
React native: building native iOS apps with javascriptPolidea
React-Native is Facebook's React based native application framework. You can write iOS applications using native Views and Controls, while the whole application logic is written in Javascript (the good parts of it in fact). Soon Android version will be released but for now we can build iOS apps with it.
Angular 2 is a rewrite of AngularJS for modern web development. It improves on AngularJS by being faster, easier to use and learn, and built on proven best practices. Some key differences include components replacing controllers, unidirectional data flow instead of two-way binding, and type-based dependency injection rather than naming. While the core concepts remain similar, the implementation in Angular 2 is cleaner. However, setting up a full Angular project can still be complicated due to dependencies on build tools and module bundling.
This document provides an overview of the AngularJS JavaScript framework. It discusses what AngularJS is, how it works, and its benefits. AngularJS is an MVC framework built by Google for building user interfaces with declarative programming and two-way data binding. It allows creating reusable components with directives and provides services for common tasks like data binding, dependency injection and RESTful APIs. The document highlights how AngularJS enables rapid prototyping, has a large community and structured codebase which can help startups build fast prototypes and robust solutions.
Learn web development with the famous Angular framework from scratch in this Angular 6 online training tutorial.
Get the course here : https://www.eduonix.com/angular-4-the-complete-guide?coupon_code=JY10
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...DicodingEvent
Jetpack is a suite of libraries and architecture components that help developers follow best practices to reduce boilerplate code and write code that is compatible across Android versions and devices. It includes libraries for UI components, navigation, data binding, room, lifecycle management, and more. Using Jetpack can help developers focus on the code that matters by eliminating redundant code and ensuring compatibility.
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BD...DicodingEvent
Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BDT TA 2020
Web Session
Nama materi: Menjadi Front-End Web Developer Expert
Narasumber: Dimas Maulana Dwi Saputra (Google Associate Android Developer, Curriculum Developer Dicoding)
This document introduces React Native, a framework for building mobile apps using React. It allows building Android and iOS apps with shared code. React Native uses a virtual DOM for fast rendering. Components manage state and receive data through props. Lifecycle methods handle mounting, updating, and unmounting. Setting up requires Node.js, React Native CLI, and Android Studio or Xcode. Hot reloading, Flexbox layouts, and libraries like Lottie and React Navigation make development easier.
Angular 2 is a new version of AngularJS that is currently in alpha. It embraces modern web standards like Shadow DOM and Web Workers. Angular 2 components replace directives and use classes instead of controllers. Templates are now called views. Two-way binding and ng-repeat are changed. The API is still changing but you can try it now on angular.io.
React native: building native iOS apps with javascriptPolidea
React-Native is Facebook's React based native application framework. You can write iOS applications using native Views and Controls, while the whole application logic is written in Javascript (the good parts of it in fact). Soon Android version will be released but for now we can build iOS apps with it.
Angular 2 is a rewrite of AngularJS for modern web development. It improves on AngularJS by being faster, easier to use and learn, and built on proven best practices. Some key differences include components replacing controllers, unidirectional data flow instead of two-way binding, and type-based dependency injection rather than naming. While the core concepts remain similar, the implementation in Angular 2 is cleaner. However, setting up a full Angular project can still be complicated due to dependencies on build tools and module bundling.
This document provides an overview of the AngularJS JavaScript framework. It discusses what AngularJS is, how it works, and its benefits. AngularJS is an MVC framework built by Google for building user interfaces with declarative programming and two-way data binding. It allows creating reusable components with directives and provides services for common tasks like data binding, dependency injection and RESTful APIs. The document highlights how AngularJS enables rapid prototyping, has a large community and structured codebase which can help startups build fast prototypes and robust solutions.
Learn web development with the famous Angular framework from scratch in this Angular 6 online training tutorial.
Get the course here : https://www.eduonix.com/angular-4-the-complete-guide?coupon_code=JY10
This fast-paced overview for beginners discusses some aspects of AngularJS 1.x and 2.x, which versions to learn (and why), and the technologies that you need to learn. We'll delve into examples of combining AngularJS with other technologies (such as BackboneJS and D3.js), and also address the +/- of AngularJS.
React JS Belgium Touch Base - React, Flux, React NativePhilos.io
This document provides an introduction to ReactJS, including:
- ReactJS is a JavaScript library for building user interfaces using components and a virtual DOM. It implements unidirectional data flow.
- Components are used to build up user interfaces and can receive data via props. The virtual DOM allows for efficient updates before rendering to the real DOM.
- Flux is an architecture used with React for unidirectional data flow between actions, stores, and React components.
- React Native allows building native mobile apps using React by rendering natively on each platform rather than with HTML and CSS.
Your Angular app grew up and became too slow, so that you want to make it faster by implementing React framework.
How to do it? Is it worth it? What's the easiest way? What are pros and cons? You can derive all of that from this presentation.
(It may also be useful if you're just making a choice between these two frameworks.)
This document discusses how JavaScript is becoming a universal platform for developing applications. It provides examples of how JavaScript can be used to create web apps, desktop apps, and mobile apps. The document demonstrates a tweet scheduling app called Birdcage that is built using JavaScript and runs as a web app, desktop app, and mobile app to show code reuse across platforms. It discusses technologies like Electron, React Native, and Angular that help make JavaScript a universal language for developing any kind of application.
The document outlines an online training course for Angular 10 that covers fundamental concepts like TypeScript, Angular fundamentals, NgRx, server-side integration with Node and Express, Angular Material, PrimeNG, and a final e-commerce project. The 50-day, 100-hour course includes daily live and hands-on training, video lessons, project files, and lifetime access for 6000 INR or $85. Key topics include Angular architecture, components, routing, HTTP requests, reactive forms, state management with NgRx, REST APIs, authentication, and deployment.
React-Native for multi-platform mobile applications @ Codemotion Rome 2017Matteo Manchi
Matteo Manchi gave a presentation on React Native for building multi-platform mobile applications. He discussed how React Native allows using JavaScript to build native mobile apps, providing native performance with cross-platform code sharing. It works by rendering UI components to native platform views using a native bridge. He demonstrated building a sample app, highlighting React Native's declarative programming model and support for many native components and APIs out of the box. Manchi also overviewed the large React Native ecosystem and community, and examples of major companies using it like Facebook.
React Native is an open source framework by Facebook that enables software engineers to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. I'll talk about what React Native actually is (and what it isn't), how it works under the hood, and why it was designed like that.
React Native allows developers to build mobile apps using React with native platform capabilities. It uses native components instead of web views, making apps feel and perform like native ones. The document discusses what React Native is, how to set up a development environment, build a basic app, add libraries, handle common errors, and React Native fundamentals like components, styles, layout, events, and touch handling.
What's This React Native Thing I Keep Hearing About?Evan Stone
In our daily lives as iOS developers, we can usually happily keep coding away in Swift and ignore what’s going on in other software development communities, like that of JavaScript. However, there may be some advantages to at least becoming familiar with what’s going on in the world of React Native, and in this session you will get an overview of what React Native is, and why it could be a useful addition to your toolbox an iOS developer.
These slides are based on a talk given by Evan K. Stone at the Forward Swift conference in San Francisco on March 2, 2017.
Angular 2 interview questions and answersAnil Singh
angular 2 interview questions and answers, Angular 2 tutorials, Angular 2 docs, angular 2 interview, Angular, What is Angular 2, angular 2 vs react, What are the fundamentals concepts of Angular 2?,
Development on the Salesforce platform continues to be much more JavaScript centric. One of the most popular JavaScript frameworks in use, AngularJS, has undergone major changes in the upcoming Angular 2 release.
What is the difference between Angular 1 and Angular 2.
Content:
Where Angular 1.x is going?
Angular 2 - motivations and themes
Open-source culture in Angular team
Muhammad azamuddin introduction-to-reactjsPHP Indonesia
ReactJS is a JavaScript library for building user interfaces. It uses a component-based approach to build modular and reusable UI components that make code more maintainable and boost productivity. Some key advantages of React include its simplicity, ability to easily create reusable UI components, support for one-way data binding that makes the data flow clear, ability to render on both client and server sides, and strong performance due to its use of a virtual DOM. It is used by many large companies including Facebook, Instagram, Netflix, and Airbnb.
The evolution of Angular 2 @ AngularJS Munich Meetup #5Johannes Weber
The evolution of Angular 2
Angular 1 was born in 2009. Since that a lot of web standards are born and supported by most of the browsers natively. So it's time to use the new possibilities. That's how Angular 2 started. It's not just a major update. It's a whole rewrite!
The key theme of this talk it to get an overview of Angular 2. I’ll walk you through what you need to know to stay up to date, explain the main concepts behind A2 and the current state.
It is rounded off with some practical suggestions on how to proceed today - to make the transition from Angular 1.x to Angular 2.x easier.
Original slides with animated gifs can be found here: https://docs.google.com/presentation/d/122ptcLESkfSw8omK9ekG8FksD_zvegGrqOL2GR5PE80/edit?usp=sharing
Angular 2 is now in release candidate and can be used for new projects, though Angular 1 will still be supported for the next 1.5-2 years. There are two main approaches to upgrading an existing Angular 1 app to Angular 2: big bang, where the entire app is rewritten at once in Angular 2, or incremental, where individual components are upgraded one by one. Components and directives are now unified under the component model in Angular 2. TypeScript is recommended for Angular 2 development but not required, as JavaScript can also be used.
FITC events. For digital creators.
Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
Getting Started with Angular 2
with Rob McDiarmid
OVERVIEW
Angular 2 is a powerful framework that lets you create fast and scalable web apps with clean and readable code. With the lessons learned from previous web frameworks and the advantages of modern web technologies, the Angular team has created a framework that will push the limits of what SPAs are capable of.
In this session we’ll go through building an Angular 2.0 app from the ground up. In the process, you will learn how it handles core concepts like components, templates, services, and routing. You’ll also see how angular takes advantage of ES6 modules, Web Components, and TypeScript. By the end of the session, you’ll have a good understanding of why you might want to use Angular 2 for your next project and how to get started.
OBJECTIVE
Demonstrate what Angular 2 has to offer and reduce the barrier to entry.
TARGET AUDIENCE
Web Developers interested in learning Angular 2.
ASSUMED AUDIENCE KNOWLEDGE
Intermediate experience with JavaScript.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
1. Core concepts of the Angular 2 framework
2. How to use ES6 modules
3. The benefits of TypeScript annotations
4. How to setup an Angular 2 project from scratch
5. The ecosystem of tools that Angular 2 apps will be built on
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
With the progressive growing of Web Applications in the last few years, the new version of this super framework has some awesome new things. Change detection? Syntax sugar? ES6? Native APIs?
Kasper Reijnders will give a presentation on building web applications with Angular. The presentation will cover an introduction to Angular, including versions 1.x, 2.x and the next version 4.x. It will demonstrate key Angular concepts like components, modules, inputs/outputs, services, pipes and directives. Code examples will be provided to illustrate how to build components, modules, handle inputs/outputs with services, and use templates.
This document summarizes techniques for optimizing Angular application performance, including ahead of time compilation, lazy loading, change detection strategies, avoiding memory leaks, and server side rendering. It provides code examples and compares boot times between different configurations. The techniques can improve first meaningful paint time by up to 86% compared to the default configuration.
This fast-paced overview for beginners discusses some aspects of AngularJS 1.x and 2.x, which versions to learn (and why), and the technologies that you need to learn. We'll delve into examples of combining AngularJS with other technologies (such as BackboneJS and D3.js), and also address the +/- of AngularJS.
React JS Belgium Touch Base - React, Flux, React NativePhilos.io
This document provides an introduction to ReactJS, including:
- ReactJS is a JavaScript library for building user interfaces using components and a virtual DOM. It implements unidirectional data flow.
- Components are used to build up user interfaces and can receive data via props. The virtual DOM allows for efficient updates before rendering to the real DOM.
- Flux is an architecture used with React for unidirectional data flow between actions, stores, and React components.
- React Native allows building native mobile apps using React by rendering natively on each platform rather than with HTML and CSS.
Your Angular app grew up and became too slow, so that you want to make it faster by implementing React framework.
How to do it? Is it worth it? What's the easiest way? What are pros and cons? You can derive all of that from this presentation.
(It may also be useful if you're just making a choice between these two frameworks.)
This document discusses how JavaScript is becoming a universal platform for developing applications. It provides examples of how JavaScript can be used to create web apps, desktop apps, and mobile apps. The document demonstrates a tweet scheduling app called Birdcage that is built using JavaScript and runs as a web app, desktop app, and mobile app to show code reuse across platforms. It discusses technologies like Electron, React Native, and Angular that help make JavaScript a universal language for developing any kind of application.
The document outlines an online training course for Angular 10 that covers fundamental concepts like TypeScript, Angular fundamentals, NgRx, server-side integration with Node and Express, Angular Material, PrimeNG, and a final e-commerce project. The 50-day, 100-hour course includes daily live and hands-on training, video lessons, project files, and lifetime access for 6000 INR or $85. Key topics include Angular architecture, components, routing, HTTP requests, reactive forms, state management with NgRx, REST APIs, authentication, and deployment.
React-Native for multi-platform mobile applications @ Codemotion Rome 2017Matteo Manchi
Matteo Manchi gave a presentation on React Native for building multi-platform mobile applications. He discussed how React Native allows using JavaScript to build native mobile apps, providing native performance with cross-platform code sharing. It works by rendering UI components to native platform views using a native bridge. He demonstrated building a sample app, highlighting React Native's declarative programming model and support for many native components and APIs out of the box. Manchi also overviewed the large React Native ecosystem and community, and examples of major companies using it like Facebook.
React Native is an open source framework by Facebook that enables software engineers to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. I'll talk about what React Native actually is (and what it isn't), how it works under the hood, and why it was designed like that.
React Native allows developers to build mobile apps using React with native platform capabilities. It uses native components instead of web views, making apps feel and perform like native ones. The document discusses what React Native is, how to set up a development environment, build a basic app, add libraries, handle common errors, and React Native fundamentals like components, styles, layout, events, and touch handling.
What's This React Native Thing I Keep Hearing About?Evan Stone
In our daily lives as iOS developers, we can usually happily keep coding away in Swift and ignore what’s going on in other software development communities, like that of JavaScript. However, there may be some advantages to at least becoming familiar with what’s going on in the world of React Native, and in this session you will get an overview of what React Native is, and why it could be a useful addition to your toolbox an iOS developer.
These slides are based on a talk given by Evan K. Stone at the Forward Swift conference in San Francisco on March 2, 2017.
Angular 2 interview questions and answersAnil Singh
angular 2 interview questions and answers, Angular 2 tutorials, Angular 2 docs, angular 2 interview, Angular, What is Angular 2, angular 2 vs react, What are the fundamentals concepts of Angular 2?,
Development on the Salesforce platform continues to be much more JavaScript centric. One of the most popular JavaScript frameworks in use, AngularJS, has undergone major changes in the upcoming Angular 2 release.
What is the difference between Angular 1 and Angular 2.
Content:
Where Angular 1.x is going?
Angular 2 - motivations and themes
Open-source culture in Angular team
Muhammad azamuddin introduction-to-reactjsPHP Indonesia
ReactJS is a JavaScript library for building user interfaces. It uses a component-based approach to build modular and reusable UI components that make code more maintainable and boost productivity. Some key advantages of React include its simplicity, ability to easily create reusable UI components, support for one-way data binding that makes the data flow clear, ability to render on both client and server sides, and strong performance due to its use of a virtual DOM. It is used by many large companies including Facebook, Instagram, Netflix, and Airbnb.
The evolution of Angular 2 @ AngularJS Munich Meetup #5Johannes Weber
The evolution of Angular 2
Angular 1 was born in 2009. Since that a lot of web standards are born and supported by most of the browsers natively. So it's time to use the new possibilities. That's how Angular 2 started. It's not just a major update. It's a whole rewrite!
The key theme of this talk it to get an overview of Angular 2. I’ll walk you through what you need to know to stay up to date, explain the main concepts behind A2 and the current state.
It is rounded off with some practical suggestions on how to proceed today - to make the transition from Angular 1.x to Angular 2.x easier.
Original slides with animated gifs can be found here: https://docs.google.com/presentation/d/122ptcLESkfSw8omK9ekG8FksD_zvegGrqOL2GR5PE80/edit?usp=sharing
Angular 2 is now in release candidate and can be used for new projects, though Angular 1 will still be supported for the next 1.5-2 years. There are two main approaches to upgrading an existing Angular 1 app to Angular 2: big bang, where the entire app is rewritten at once in Angular 2, or incremental, where individual components are upgraded one by one. Components and directives are now unified under the component model in Angular 2. TypeScript is recommended for Angular 2 development but not required, as JavaScript can also be used.
FITC events. For digital creators.
Save 10% off ANY FITC event with discount code 'slideshare'
See our upcoming events at www.fitc.ca
Getting Started with Angular 2
with Rob McDiarmid
OVERVIEW
Angular 2 is a powerful framework that lets you create fast and scalable web apps with clean and readable code. With the lessons learned from previous web frameworks and the advantages of modern web technologies, the Angular team has created a framework that will push the limits of what SPAs are capable of.
In this session we’ll go through building an Angular 2.0 app from the ground up. In the process, you will learn how it handles core concepts like components, templates, services, and routing. You’ll also see how angular takes advantage of ES6 modules, Web Components, and TypeScript. By the end of the session, you’ll have a good understanding of why you might want to use Angular 2 for your next project and how to get started.
OBJECTIVE
Demonstrate what Angular 2 has to offer and reduce the barrier to entry.
TARGET AUDIENCE
Web Developers interested in learning Angular 2.
ASSUMED AUDIENCE KNOWLEDGE
Intermediate experience with JavaScript.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
1. Core concepts of the Angular 2 framework
2. How to use ES6 modules
3. The benefits of TypeScript annotations
4. How to setup an Angular 2 project from scratch
5. The ecosystem of tools that Angular 2 apps will be built on
Using Dagger in a Clean Architecture projectFabio Collini
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
With the progressive growing of Web Applications in the last few years, the new version of this super framework has some awesome new things. Change detection? Syntax sugar? ES6? Native APIs?
Kasper Reijnders will give a presentation on building web applications with Angular. The presentation will cover an introduction to Angular, including versions 1.x, 2.x and the next version 4.x. It will demonstrate key Angular concepts like components, modules, inputs/outputs, services, pipes and directives. Code examples will be provided to illustrate how to build components, modules, handle inputs/outputs with services, and use templates.
This document summarizes techniques for optimizing Angular application performance, including ahead of time compilation, lazy loading, change detection strategies, avoiding memory leaks, and server side rendering. It provides code examples and compares boot times between different configurations. The techniques can improve first meaningful paint time by up to 86% compared to the default configuration.
Automation Abstraction Layers: Page Objects and BeyondAlan Richardson
An overview of different approaches to Page Objects and Domain Objects for GUI Automation. Examples use WebDriver and Java.
Full source code is available to download, For more details see the associated blog post.
The aim of these series is exploring Angular 2 and it's amazing features. with the simplest way and the meaningful examples and labs to be practiced. Good Luck in Exploring :D
The document discusses protocol-oriented programming in Swift. It begins by comparing protocols in Swift vs Objective-C, noting key differences like protocol inheritance, extensions, default implementations, and associated types in Swift. It then defines protocol-oriented programming as separating public interfaces from implementations using protocols that components communicate through. Examples are provided of using protocols for data types, dependency injection, testing, and real-world UIKit views. Protocol-oriented programming is said to improve reusability, extensibility, and maintainability over inheritance-based approaches.
Simon Chan, CEO of PredictionIO, presented on their open source machine learning server. PredictionIO has over 5,000 developers and powers over 200 applications. It allows users to easily collect data, train models, and retrieve predictions. Key challenges included coordinating workflows on distributed clusters and distributed in-memory model retrieval, both of which PredictionIO addresses through Apache Spark.
Philip Shurpik "Architecting React Native app"Fwdays
React Native становится все более зрелым фреймворком для создания кросс платформенных мобильных приложений. Доклад основан на нашем опыте создания production приложения - от архитектуры до тестирования и CI.
Рассмотрим вопрос переиспользования кода при разработке для разных платформ- что и сколько процентов можно переиспользовать и как этого достичь.
Поговорим о том, как можно очень просто сделать offline-first приложение для чтения и создания данных. И чем нам в этом могут помочь Redux и Redux persist.
Разберем, как максимально просто сделать навигацию в приложении.
И, конечно же, какое production приложение без тестирования и continuous integration? Рассмотрим компонентное тестирование с Enzyme и интеграционное с Appium. А также, как максимально приблизить процесс deploy к тому, чему мы привыкли в web, с помощью CodePush.
Vlad Nedomovniy "Navigation with less pain"Provectus
This document discusses navigation libraries for Android apps. It compares Cicerone and the Navigation Architecture Component. Cicerone is an open-source library that uses screens and commands to handle navigation. The Navigation Architecture Component is in alpha but is maintained by Google. It defines navigation as destinations and actions in an XML file. Key features are safe argument passing using generated classes, deep linking support, and transition animations between destinations. Overall the document provides an overview of navigation options and best practices for Android apps.
This document provides an introduction to Angular 2, including:
- Angular 2 is a JavaScript framework for building single-page applications that uses dependency injection, change detection, and components.
- TypeScript allows adding types to JavaScript for complex apps and is used extensively in Angular 2.
- The Angular 2 ecosystem utilizes decorators like @Component and @NgModule to define metadata for components and modules. Components also have lifecycle hooks.
- The document demonstrates how to set up an Angular 2 app using the Angular CLI, including creating modules, components, services, and bootstrapping the app. It compares the component architecture between Angular 1 and 2.
Visual Testing: The Missing Piece of the Puzzle -- presentation by Gil TayarApplitools
Full webinar recording here: https://youtu.be/vx34FJYdp9o
** In this talk, Sr. Architect Gil Tayar gives a comprehensive overview of visual testing, discuss why pixel comparison is not enough, detail some of the challenges of visual testing, and review how current visual testing tools offer a solution to these challenges **
Unit tests, component tests, automation tests, acceptance tests: all the various kinds of tests check that an application works as it should, and functions as expected.
But until now, testing how an app looks like was delegated to manual testing. When all you had was a desktop or web app, that was almost acceptable: there was a lot of application to check, but only one form factor.
But in these days of multiple form factors -- desktops of various widths, mobile, tablet -- automation is a necessity. But how does one go about checking how an app looks? Comparing pixels against a baseline yields too many false positives, and any small change in your app will drown you in failed tests that you need to fix manually.
Visual Testing offers a solution to the problem. Using online services and algorithms taken from the world of AI, Visual Testing offers a platform that enables you to finally ensure that your application looks like you expect it to.
Key takeaway:
* Why functional testing is not enough
* Challenges of testing apps in a multiple-form-factor world
* How current visual testing tools overcome the challenges
* The place of Visual Testing in your tests
* How to write visual tests
Automation Abstractions: Page Objects and BeyondTechWell
When you start writing automation for your projects, you quickly realize that you need to organize and design the code. You will write far more than “test” code; you also will write abstraction code because you want to make tests easier to read and maintain. But how do you design all this code? How do you organize and structure it? Should you use a domain specific language? Should you go keyword driven or use Gherkin? Should you use page objects with POJO or Factories? Do you create DOM level abstractions? Where do domain models fit in? Alan Richardson provides an overview of options available to you when modeling abstraction layers. Based on his experience with many approaches on real-world commercial projects, Alan helps you understand how to think about the modeling of abstraction layers. Illustrated with a number of code examples, Alan shows you a variety of approaches and discusses the pros and cons associated with each.
This document discusses Angular structural elements like components. It explains that components are the fundamental building blocks of Angular applications and display data, listen for user input, and take actions. A component is distributed over three files - a TypeScript class file, an HTML template file, and a CSS styles file. The document provides details on creating a new component using the Angular CLI command and the structure of the component class file with the @Component decorator and lifecycle hooks. It also describes how the component template file uses HTML along with Angular directives and bindings.
How React Native, Appium and me made each other shine @Frontmania 16-11-2018Wim Selles
The document discusses various techniques for optimizing mobile test automation, including:
1) Mocking API responses and disabling animations to speed up test execution times significantly.
2) Implementing shortcuts like unique IDs and headers to scripts tests once across platforms.
3) Saving time by parallelizing test execution and preventing inconsistent test data issues.
Angular server side rendering - Strategies & Technics Eliran Eliassy
Server Side Rendering (SSR) involves running and serving an Angular application from the server. This provides benefits like fast initial loading, SEO/crawlability since search engines can't run JavaScript. The document discusses SSR strategies like partial rendering and avoiding duplicate requests. It also covers challenges like unsupported features and outlines steps to implement SSR like generating a Universal module and rendering on the server with Express. SSR can improve performance but requires more complex setup and deployment.
So what to use when doing job outside main thread? Plain old Java thread? AsyncTask? Loader? Maybe something catchy, like RoboSpice or even rxAndroid?
Let’s dive deeply into nearly all possible ways of implementing async operations on Android. Find pros and cons, share our experience with all attitudes.
Exploring Kotlin language basics for Android App developmentJayaprakash R
Kotlin is a new programming language that targets JVM, Android and JavaScript. It is 100% interoperable with Java and avoids NullPointerExceptions. Some key features include lambda expressions, immutable val properties, smart casting, and named arguments. Kotlin code can use existing Java frameworks and libraries. Data classes, sealed classes, and when expressions make the code cleaner. Best practices include using apply() for object initialization and named arguments instead of method chaining.
This document provides an introduction to AngularJS. It explains that AngularJS is a JavaScript MVC framework and not just a library. It describes key Angular concepts like directives, controllers, services and dependency injection which make Angular apps modular and components easily testable. Testing is emphasized as equally important as writing code. The document also introduces tools like Karma and Protractor that are useful for automated testing of Angular apps in browsers.
UberFire is a web framework for building extensible workbenches and console applications that provides an Eclipse-like workbench experience for the web. It allows users to easily build rich web apps by providing a strong ecosystem of pluggable components and infrastructure. UberFire's goal is to provide a customizable workbench experience on the web for building maintainable apps. It uses techniques like hierarchical composition, menus, and life-cycle management to achieve this.
This document provides step by step instructions on how to achieve dependency injection using dagger 2. The code is written in java. The code content is courtesy of Coding In Flow - You can check out this channel for in-depth explanation. https://www.youtube.com/watch?v=ZZ_qek0hGkM&list=PLrnPJCHvNZuA2ioi4soDZKz8euUQnJW65
Similar to Baparekraf Digital Talent Day: Monitoring dan Coaching Penerima Fasilitasi BDT TA 2020 - Ahmad Arif Faizin (20)
Dicoding Developer Coaching kali ini akan membahas materi dan pertanyaan seputar Machine Learning Developer dengan tema "Meramal Masa Depan Menggunakan Time Series"
Pada kesempatan ini, kita akan membahas bagaimana konsep time series untuk melakukan prediksi sehingga dapat membantu meningkatkan efisiensi dan produktivitas dalam produksi.
Ask Us Anything about Studi Independen Bersertifikat Kampus Merdeka X Dicodin...DicodingEvent
Program Studi Independen Bersertifikat dari Kampus Merdeka X Dicoding kembali hadir di Batch Kedua! Program ini merupakan kerja sama antara Dicoding dengan Dirjen DIKTI khusus untuk mahasiswa aktif D3/D4/S1 yang akan menempuh semester 6 atau lebih pada awal tahun 2022 dari seluruh Indonesia. Program ini didesain untuk meningkatkan kemampuan sesuai bakat dan minat mahasiswa di bidang IT.
Sesi ini akan mengupas tuntas informasi seputar Program Studi Independen Bersertifikat Kampus Merdeka X Dicoding Batch Kedua serta menjawab seluruh pertanyaanmu.
Informasi lengkap dan Pendaftaran Program Kampus Merdeka X Dicoding dapat dilihat di: dicoding.id/kampusmerdeka.
William Notowidagdo is the SVP of Engineering at Amartha. As a software engineer, he applies mathematical analysis and computer science principles to design and develop computer software. He also emphasizes the importance of continuous learning through online courses, books, and monitoring current principles and practices in the field.
Membangun Aplikasi Serverless di Platfrom AWSDicodingEvent
Dokumen ini membahas tentang dasar-dasar komputasi cloud AWS. Terdapat tiga model penerapan cloud computing yaitu cloud-based, on-premise, dan hybrid. Dokumen ini juga menjelaskan beberapa layanan utama AWS seperti Amazon EC2 untuk server virtual, container service seperti ECS dan EKS, serta serverless computing menggunakan AWS Lambda.
IDCamp X Madrasah: Pengenalan Computational ThinkingDicodingEvent
Kurikulum Nasional K-12 mendorong pengajaran berpikir komputasional dan pemrograman di sekolah. Berpikir komputasional merupakan keterampilan fundamental yang akan digunakan semua orang pada pertengahan abad ke-21, seperti membaca, menulis, dan aritmatika. Berpikir komputasional melibatkan proses pemecahan masalah secara efektif, efisien, dan optimal dengan empat fondasi utama yaitu dekomposisi
Membuat Produk Digital Terbaik ala Startup UnicornDicodingEvent
Perkembangan teknologi saat ini semakin berkembang pesat, Selain bonus demografi usia muda Indonesia saat ini harus dimanfaatkan secara maksimal.
Melihat perkembangan teknologi hari ini tidak terlepas dari besarnya semangat generasi muda Indonesia untuk terus berkarya dan mengejar mimpi mereka. Semua berlomba-lomba untuk menjadi developer dan programmer yang sukses dan bisa membuat produk atau program yang memberi “impact”. Namun seringkali kita melupakan kemampuan dan kualitas diri kita untuk bisa menjadi developer dan programmer yang baik dan dapat diterima oleh tim atau industri.
Oleh karena itu, sebelum memutuskan untuk menjadi seorang developer dan programmer sukses, akan lebih baik jika kita mengasah skill dan kredibilitas kita terlebih dahulu. Penasaran kan gimana caranya memaksimalkan kualitas diri dan bisa mengerti apa yang dibutuhkan oleh tim dan juga industri? Hal ini akan kita bahas bersama Glenn Hizkia (Sr. Product Manager - Tokopedia) dan Calvin Wirawan (Sr. Software Engineer - Tokopedia) dalam acara IDCamp x Dicoding LIVE "Membuat Produk Digital Terbaik ala Startup Unicorn."
TechTalk 2021: Peran IT Security dalam Penerapan DevOpsDicodingEvent
Di Indonesia, 19,4% perusahaan sudah mulai menggunakan layanan cloud publik. Stapi sering kali saat perusahan sudah mengadopsi cloud, mereka baru menyadari betapa rumitnya penerapan cloud. Akibatnya, banyak perusahaan yang stuck dalam operasional aplikasi yang baru ini.
Hadirlah DevOps yang memberi layanan lebih cepat dan mendorong inovasi sekaligus meningkatkan produktivitas, komunikasi, dan keterlibatan karyawan. Tapi hadirnya layanan yang lebih cepat membuat risiko dalam penerapan aplikasi meningkat sebesar 53% upaya pencurian data menyasar aplikasi itu sendiri. Oleh karena itu, sangat penting bagi perusahaan untuk mengubah mindset dari menerapkan keamanan untuk kepatuhan ke metode yang lebih proaktif dengan memanfaatkan prinsip-prinsip DevOps dalam tool dan proses keamanan mereka.
Hmm jadi penasaran bagaimana sih memaksimalkan peran keamanan dalam penerapan Devops supaya berjalan dengan lacar? Hal ini akan kita bahas bersama 2 orang pembicara yang expert dibidangnya, yaitu Rei Munisati (Head of IT Security & Risk Compliance, Home Credit Indonesia) dan Taro Lay (Co-Founder Kalama Cyber Security) pada Tech Talk 2021 Live dengan tema "Peran IT Security dalam Penerapan DevOps."
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CDDicodingEvent
CI/CD atau panjangnya Continous Intergation dan Continous Delivery adalah budaya yang biasa diterapkan dalam pengembangan perangkat lunak. Tapi sejatinya masih banyak programmer atau developer yang belum familiar dengan CI/CD. Padahal CI/CD adalah salah satu praktik yang memungkinkan pengembang untuk fokus pada pemenuhan sayarat bisnis, kualitas kode, dan keamanan. Dan pipeline dari CI/CD ini sangat membantu perusahaan yang sering melakukan perubahaan pada aplikasi dengan proses perngiriman yang andal. Hmm.. ternyata banyak benefitnya ya.
Jadi bagaimana ya kira-kira mengimplementasikan CI/CD dengan baik? Hal ini akan kita bahas bersama 2 orang pembicara yang expert dibidangnya, yaitu Rendra Toro (CTO Perintis Teknologi Nusantara) dan Steven Lewi (Principal Engineer Home Credit Indonesia) pada Tech Talk 2021 Live dengan tema "Peningkatan Performa Software Delivery dengan CI/CD."
Membuat Solusi Bermanfaat dengan Programming - Nur RohmanDicodingEvent
Dokumen tersebut memberikan saran bagi pemula programming untuk fokus pada dasar-dasar dan prinsip-prinsip pemrograman seperti bahasa pemrograman, pemecahan masalah, serta mentorship. Dokumen ini juga menyarankan untuk memulai dengan proyek-proyek kecil yang menyenangkan untuk meningkatkan konsistensi belajar.
Potensi karier menjadi ios developer di masa depanDicodingEvent
Jaman sekarang berinvestasi sudah tidak asing lagi, hampir semua orang mencari tahu bagaimana melakukan investasi dengan baik di instrumen yang berbeda supaya kelak hidup lebih nyaman oleh dana investasi. Berinvestasi sendiri tidak hanya dalam berbentuk uang loh! Menginvestasikan diri sendiri pun sama pentingnya. Memenuhi diri dengan berbagai pengetahuan akan membantu kita dalam keseharian atau saat akan memulai karir. Bisa mengetahui potensi apa saja yang kita bisa dapat dengan mempelajari suatu hal baru tentu akan sangat membantu, salah satunya iOS.
Operating system besutan Apple ini mempunyai pengaruh besar dalam dunia tech. Apa dengan mengenal iOS akan membantu karir kedepan? Lalu, apa saja potensi karirnya? Mengapa menginvestasikan ilmu sangat penting? Hal ini akan kita bahas oleh Ari Supriatna (iOS Developer - Bibit.id) pada IDCamp x Dicoding Live dengan tema "Potensi Karier Menjadi iOS Developer di Masa Depan".
Id camp x dicoding live : persiapan jadi software engineer hebat 101DicodingEvent
Apakah seorang software engineer hebat adalah yang menguasai banyak bahasa pemrograman? Yang serba semua bisa? atau yang menguasai teknologi kekinian? Walaupun setiap individu memiliki standar hebat yang berbeda-beda tergantung dengan goals, passion, dan career path yang akan diambil. Tapi satu yang pasti untuk menjadi software engineer yang hebat ada cara dan langkah yang bisa dipelajari. Apa saja tips dan cara yang bisa kita lakukan untuk menjadi software engineer yang hebat? Hal ini akan kita bahas tips oleh Sidiq Permana (Co-Founder dan CIO - Nusantara Beta Studio) pada Dicoding LIVE x IDCamp dengan tema "Persiapan Jadi Software Engineer Hebat 101".
Tips sukses berkarir sebagai developer dan programmer 2021DicodingEvent
Tetap kembangkan skill mu di era pandemi. Jadikan hari-harimu lebih produktif dengan asah pengetahuan dan skill di Dicoding Event. Kali ini Dicoding LIVE disponsori oleh IDCamp dengan tema "Tips Sukses Berkarir sebagai Developer dan Programmer 2021"
Developer dan programmer kini menjadi salah satu pekerjaan yang paling diminati. Jadi, tidak heran jika banyak orang yang tertarik mencoba profesi ini untuk berkarir. Sayangnya masih banyak orang berpikir bahwa bekerja menjadi developer dan programmer hanya berhubungan dengan hal-hal yang bersifat technical, padahal tidak. Banyak hal yang harus dipersiapkan dan diketahui saat ingin mulai berkarier di dunia kerja seperti tools apa yang bisa membantu produktivitas, cara berkomunikasi dengan tim, sampai problem solving masalah dalam tim. Kali ini bersama dengan Andri Suranta Ginting (Mobile Engineer, Gojek) akan kita bahas tips dari pengalaman beliau dalam berkarir sebagai developer dan programmer juga menyiapkan hal technical dan non-technical untuk dikuasai di dunia kerja.
Teknologi Baru Android di Google I/O 2021 - Andrew KurniadiDicodingEvent
The document outlines the key features and improvements in Android 12 including Material You design changes, performance enhancements, privacy/security updates, and new developer tools. Some highlights are an redesigned widgets, stretch scrolling, faster startup times, microphone/camera indicators, Jetpack Compose 1.0, and drag and drop functionality. It concludes by thanking the reader and encouraging them to follow the author on social media.
Dicoding Developer Coaching #38: Android | 5 Library Android yang Patut Kamu ...DicodingEvent
Dicoding Developer Coaching merupakan webinar, yang membahas tuntas kendala maupun pertanyaan yang sering ditanyakan di Academy Dicoding.
Tema kali ini adalah "5 Library Android yang Patut Kamu Coba di 2021"
Library sering sekali membantu kita sebagai developer untuk mengembangkan aplikasi dengan lebih cepat dan efisien. Nah, di sini kita akan memilih 5 Library yang patut kamu coba di tahun 2021. Ada library yang dapat membantu dalam memanajemen log dan juga error ketika aplikasi dirilis. Ada juga library yang dapat membuat desain aplikasi menjadi lebih menarik. Selain itu, ada juga library yang dapat digunakan untuk menampilkan peta. Penasaran library apa sajakah itu? Yuk ikuti developer coaching penutup dari series Android ini.
Dicoding Developer Coaching #37: Android | Kesalahan yang Sering Terjadi pada...DicodingEvent
Dicoding Developer Coaching merupakan webinar, yang membahas tuntas kendala maupun pertanyaan yang sering ditanyakan di Academy Dicoding.
Tema kali ini adalah "Kesalahan yang Sering Terjadi pada Keamanan Aplikasi"
Menurut Tony Ramirez (Mobile Security Analyst di NowSecure), 85% dari seluruh aplikasi memiliki kerentanan (vulnerability) pada keamanannya. Selain itu, 49% dari seluruh aplikasi membocorkan data pribadi dan melanggar GDPR (General Data Protection Regulation) [14]. Tentu kita tidak ingin menjadi salah satu di antaranya kan? Maka dari itu, simak sesi kali ini yang khusus akan membahas mengenai kesalahan yang sering terjadi pada keamanan aplikasi.
Pengantar Cloud Computing dengan AWS - Petra Novandi BarusDicodingEvent
Kali ini Dicoding LIVE bersama Amazon Web Service Indonesia akan membahas tentang "Pengantar Cloud Computing dengan AWS."
Sesi ini membahas tentang kiat-kiat khusus mempelajari Cloud Practitioner Essentials dan materi yang bisa didapatkan gratis melalui beasiswa Cloud and Back-End Developer.
1. Kinerja aplikasi Android sangat penting karena berdampak pada pengalaman pengguna dan kemungkinan pengguna untuk menghapus aplikasi.
2. Beberapa faktor utama yang mempengaruhi kinerja adalah kecepatan loading, kelancaran animasi dan tidaknya crash atau pemborosan baterai.
3. Untuk mengukur kinerja, dapat dilakukan tes internal, tanya pengguna, coba di perangkat entry-level, serta melakukan tes
Dicoding Developer Coaching merupakan webinar, yang membahas tuntas kendala maupun pertanyaan yang sering ditanyakan di Academy Dicoding.
Tema kali ini adalah "Modular Android App dengan Dynamic Feature"
Modularization adalah teknik memecah project Android menjadi beberapa bagian yang disebut dengan module. Dengan modularization kita akan mendapatkan banyak manfaat daripada menerapkan monolith (satu bagian saja) pada project kita. Salah satu penerapan dari modularization adalah dengan menggunakan Dynamic Feature.
Ringkasan dokumen tersebut adalah:
1. Dokumen tersebut membahas tentang manfaat dan alur penggunaan Continuous Integration untuk proyek Android menggunakan tools seperti Jenkins dan CircleCI.
2. Beberapa manfaat Continuous Integration yang disebutkan antara lain memastikan kode berjalan dengan baik setiap perubahan, mendeteksi error cepat, dan mempermudah proses delivery ke production.
3. Alur penggunaan Continuous Integration meliputi menghubungkan proyek ke version control
This presentation by Thibault Schrepel, Associate Professor of Law at Vrije Universiteit Amsterdam University, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by OECD, OECD Secretariat, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
This presentation by Katharine Kemp, Associate Professor at the Faculty of Law & Justice at UNSW Sydney, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
Carrer goals.pptx and their importance in real lifeartemacademy2
Career goals serve as a roadmap for individuals, guiding them toward achieving long-term professional aspirations and personal fulfillment. Establishing clear career goals enables professionals to focus their efforts on developing specific skills, gaining relevant experience, and making strategic decisions that align with their desired career trajectory. By setting both short-term and long-term objectives, individuals can systematically track their progress, make necessary adjustments, and stay motivated. Short-term goals often include acquiring new qualifications, mastering particular competencies, or securing a specific role, while long-term goals might encompass reaching executive positions, becoming industry experts, or launching entrepreneurial ventures.
Moreover, having well-defined career goals fosters a sense of purpose and direction, enhancing job satisfaction and overall productivity. It encourages continuous learning and adaptation, as professionals remain attuned to industry trends and evolving job market demands. Career goals also facilitate better time management and resource allocation, as individuals prioritize tasks and opportunities that advance their professional growth. In addition, articulating career goals can aid in networking and mentorship, as it allows individuals to communicate their aspirations clearly to potential mentors, colleagues, and employers, thereby opening doors to valuable guidance and support. Ultimately, career goals are integral to personal and professional development, driving individuals toward sustained success and fulfillment in their chosen fields.
The importance of sustainable and efficient computational practices in artificial intelligence (AI) and deep learning has become increasingly critical. This webinar focuses on the intersection of sustainability and AI, highlighting the significance of energy-efficient deep learning, innovative randomization techniques in neural networks, the potential of reservoir computing, and the cutting-edge realm of neuromorphic computing. This webinar aims to connect theoretical knowledge with practical applications and provide insights into how these innovative approaches can lead to more robust, efficient, and environmentally conscious AI systems.
Webinar Speaker: Prof. Claudio Gallicchio, Assistant Professor, University of Pisa
Claudio Gallicchio is an Assistant Professor at the Department of Computer Science of the University of Pisa, Italy. His research involves merging concepts from Deep Learning, Dynamical Systems, and Randomized Neural Systems, and he has co-authored over 100 scientific publications on the subject. He is the founder of the IEEE CIS Task Force on Reservoir Computing, and the co-founder and chair of the IEEE Task Force on Randomization-based Neural Networks and Learning Systems. He is an associate editor of IEEE Transactions on Neural Networks and Learning Systems (TNNLS).
Why Psychological Safety Matters for Software Teams - ACE 2024 - Ben Linders.pdfBen Linders
Psychological safety in teams is important; team members must feel safe and able to communicate and collaborate effectively to deliver value. It’s also necessary to build long-lasting teams since things will happen and relationships will be strained.
But, how safe is a team? How can we determine if there are any factors that make the team unsafe or have an impact on the team’s culture?
In this mini-workshop, we’ll play games for psychological safety and team culture utilizing a deck of coaching cards, The Psychological Safety Cards. We will learn how to use gamification to gain a better understanding of what’s going on in teams. Individuals share what they have learned from working in teams, what has impacted the team’s safety and culture, and what has led to positive change.
Different game formats will be played in groups in parallel. Examples are an ice-breaker to get people talking about psychological safety, a constellation where people take positions about aspects of psychological safety in their team or organization, and collaborative card games where people work together to create an environment that fosters psychological safety.
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij
This is a workshop about communication and collaboration. We will experience how we can analyze the reasons for resistance to change (exercise 1) and practice how to improve our conversation style and be more in control and effective in the way we communicate (exercise 2).
This session will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
Abstract:
Let’s talk about powerful conversations! We all know how to lead a constructive conversation, right? Then why is it so difficult to have those conversations with people at work, especially those in powerful positions that show resistance to change?
Learning to control and direct conversations takes understanding and practice.
We can combine our innate empathy with our analytical skills to gain a deeper understanding of complex situations at work. Join this session to learn how to prepare for difficult conversations and how to improve our agile conversations in order to be more influential without power. We will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
In the session you will experience how preparing and reflecting on your conversation can help you be more influential at work. You will learn how to communicate more effectively with the people needed to achieve positive change. You will leave with a self-revised version of a difficult conversation and a practical model to use when you get back to work.
Come learn more on how to become a real influencer!
This presentation by OECD, OECD Secretariat, was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by Juraj Čorba, Chair of OECD Working Party on Artificial Intelligence Governance (AIGO), was made during the discussion “Artificial Intelligence, Data and Competition” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/aicomp.
This presentation was uploaded with the author’s consent.
This presentation by Professor Alex Robson, Deputy Chair of Australia’s Productivity Commission, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
This presentation by OECD, OECD Secretariat, was made during the discussion “Competition and Regulation in Professions and Occupations” held at the 77th meeting of the OECD Working Party No. 2 on Competition and Regulation on 10 June 2024. More papers and presentations on the topic can be found at oe.cd/crps.
This presentation was uploaded with the author’s consent.
This presentation by OECD, OECD Secretariat, was made during the discussion “Pro-competitive Industrial Policy” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/pcip.
This presentation was uploaded with the author’s consent.
This presentation by Tim Capel, Director of the UK Information Commissioner’s Office Legal Service, was made during the discussion “The Intersection between Competition and Data Privacy” held at the 143rd meeting of the OECD Competition Committee on 13 June 2024. More papers and presentations on the topic can be found at oe.cd/ibcdp.
This presentation was uploaded with the author’s consent.
This presentation by Nathaniel Lane, Associate Professor in Economics at Oxford University, was made during the discussion “Pro-competitive Industrial Policy” held at the 143rd meeting of the OECD Competition Committee on 12 June 2024. More papers and presentations on the topic can be found at oe.cd/pcip.
This presentation was uploaded with the author’s consent.
17. ● Without DI
class Car {
private val engine = Engine()
fun start() {
engine.start()
}
}
fun main() {
val car = Car()
car.start()
}
● With DI
class Car(private val engine: Engine){
fun start() {
engine.start()
}
}
fun main() {
val engine = Engine()
val car = Car(engine)
car.start()
}
DI Manual
Manual
DI
19. Automated Injection with Koin
● Before
class MainActivity :
AppCompatActivity() {
lateinit var engine: Engine
override fun onCreate(...) {
...
engine = Engine()
val car = Car(engine)
car.start()
}
}
● After
class MainActivity :
AppCompatActivity() {
val engine: Engine by inject()
override fun onCreate(...) {
...
val car = Car(engine)
car.start()
}
}
20. Automated Injection with Dagger
● Before
class MainActivity :
AppCompatActivity() {
lateinit var engine: Engine
override fun onCreate(...) {
...
engine = Engine()
val car = Car(engine)
car.start()
}
}
● After
class MainActivity :
AppCompatActivity() {
@Inject lateinit var engine: Engine
override fun onCreate(...) {
appComponent.inject(this)
...
val car = Car(engine)
car.start()
}
}
21. Automated Injection with Dagger Hilt
● Before
class MainActivity :
AppCompatActivity() {
lateinit var engine: Engine
override fun onCreate(...) {
...
engine = Engine()
val car = Car(engine)
car.start()
}
}
● After
@AndroidEntryPoint
class MainActivity :
AppCompatActivity() {
@Inject lateinit var engine: Engine
override fun onCreate(...) {
...
val car = Car(engine)
car.start()
}
}
24. Why Modularization?
● Separation of concern
● Proses build jadi lebih cepat
● Code ownership
● Reusability
● Lebih aman ketika crash
● Batasan yang lebih jelas daripada
package
● Bisa membuat Instant App dan
Dynamic Feature
Replace Me!
(Bisa ditambahkan dengan image yang
relevan)
27. Summary
● Ingat Software Design Principle
● Pelajari Clean Architecture supaya kode lebih mudah dikembangkan
● Pelajari Reactive Programming supaya kode lebih mudah dipahami
● Pelajari Dependency Injection supaya kode lebih mudah digunakan kembali
● Pelajari Modularization supaya kode lebih mudah dikelola