12 - Gradle. Еволюція систем автоматичної збірки - Святослав Бабич - IT Event 2013 (5)
Gradle - нова система збірки та інтеграційний засіб нового покоління. У доповіді ми ознайомимося з можливостями цього інструменту, порівняємо його з Ant та Maven, а також розглянемо випадки, у яких мінімальними зусиллями можна перетворити складний і незрозумілий процес складання великого проекту - на просту і прозору процедуру.
Святослав Бабич
http://itevent.if.ua/lecture/gradle-evolyutsiya-sistem-avtomatichnoyi-zbirki-porivnyannya-iz-ant-ta-mavenom
The document discusses Android location and sensor APIs. It provides an overview of location services in Android, which allows apps to access location through the LocationManager. It also discusses the sensors framework, which gives access to motion, position, and environment sensors. It describes how to identify available sensors, register listeners to receive sensor events, and handle the sensor data. Key classes like SensorManager, Sensor, and SensorEventListener are also summarized.
12 - Gradle. Еволюція систем автоматичної збірки - Святослав Бабич - IT Event 2013 (5)
Gradle - нова система збірки та інтеграційний засіб нового покоління. У доповіді ми ознайомимося з можливостями цього інструменту, порівняємо його з Ant та Maven, а також розглянемо випадки, у яких мінімальними зусиллями можна перетворити складний і незрозумілий процес складання великого проекту - на просту і прозору процедуру.
Святослав Бабич
http://itevent.if.ua/lecture/gradle-evolyutsiya-sistem-avtomatichnoyi-zbirki-porivnyannya-iz-ant-ta-mavenom
The document discusses Android location and sensor APIs. It provides an overview of location services in Android, which allows apps to access location through the LocationManager. It also discusses the sensors framework, which gives access to motion, position, and environment sensors. It describes how to identify available sensors, register listeners to receive sensor events, and handle the sensor data. Key classes like SensorManager, Sensor, and SensorEventListener are also summarized.
The document provides an overview of Android application development fundamentals including application components, intents, manifest files, and more. It discusses that Android apps are written in Java and compiled to APK files. The core application components are activities, services, broadcast receivers, and content providers. Intents are used to start components and broadcast receivers register to receive system or app events. Every app must declare its components in the Android manifest.
The document provides an overview of communication capabilities in Android, including networking, useful networking libraries, Bluetooth, and Near Field Communication (NFC). It discusses how to connect to networks, perform network operations on a separate thread, check network connectivity, download data using HTTPURLConnection, and efficiently manage network usage. Libraries covered include Retrofit, okHTTP, Volley, and RoboSpice. The document also provides examples of discovering Bluetooth devices, connecting to Bluetooth devices, and implementing Bluetooth profiles. It concludes with a brief description of NFC technology.
This document provides an introduction to the Java programming language. It discusses the goals of Java, including being cross-platform, providing security through sandboxing with the Java Virtual Machine, and replacing C/C++. It explains what is needed to run and develop Java applications and the differences between Java editions. The document outlines some key differences between Java and C#/C++ and how to write a basic Java application. It also defines JAR files and provides principles for designing class structures in Java.
This document provides an overview of best practices for Android Wear development. It discusses how to pair Wear devices, common APIs with Android, showing notifications, distributing Wear apps, defining layouts, accessing views, useful libraries like Gson and EventBus, and other tips.
Павло Юрійчук — Перехід на Angular.js. Howto
1.Що таке Angular.JS на думку Менеджера і Розробника
2. Екосистема для розробки на Angular.JS
3. Причини для переходу і непереходу на Angular.JS
4. Предметна область, поради, книги
5. Ознаки, що Ви на вірному шляху
Цю презентацію значно доповнює схожа, але трохи інша. англомовна презентація Павла: "Pavlo Yuriychuk — Switching to Angular.js. Silk way"
Joomla 3. Що нового для розробників у новій версії - Віталій МаренковIgor Bronovskyy
З того часу як Joomla 1.0 відокремилась від CMS Mambo, вона пройшла шлях
від мішанини ООП і функціонального програмування із міксом PHP з HTML,
де часто, заради дрібних правок доводилось правити код самої системи, до
системи на базі MVC-фреймворка. Версія 1.5 принесла нам MVC, систему
подій та зручну шаблонізацію, завдяки яким поняття “хак” практично
зникло. 1.6 та 1.7 стали проміжними на шляху до наступної LTS-версії —
2.5. Цього разу ключовою зміною стало відокремлення Joomla CMS і Joomla
Platform. Joomla 3.0 знову є перехідною, перед виходом 3.5. Перше, що
можна в ній помітити — це направленість на мобільні пристрої та
впровадження Twitter Bootstrap, а разом з ним і jQuery. Також, нарешті,
добавлено модульне тестування. А “під капотом” криється нова концепція
MVC — HMVC.
http://itevent.if.ua/lecture/joomla-3-shcho-novogo-dlya-rozrobnikiv-u-novii-versiyi
"What is a RAG system and how to build it",Dmytro SpodaretsFwdays
Today, large language models are becoming an integral part of almost every IT solution. However, their use is often accompanied by certain limitations, such as the relevance of information or its depth and specificity. One of the ways to overcome these limitations is the method of working with LLMs - RAG (Retrieval Augmented Generation).
ОЛЕГ ЗАРЕВИЧ «How did we improve delivery using tests» Lviv QA Day 2019QADay
Lviv Quality Assurance Day 2019
ОЛЕГ ЗАРЕВИЧ
«How did we improve delivery using tests»
Telegram: www.t.me/goqameetup
Facebook: www.fb.com/goqaevent
Linkedin: www.linkedin.com/company/goqa/
Сайт: www.qaday.org
Чому саме Vue.js? Бажаєш прокачати свої знання з продуктивного FrontnEnd та отримати нові навички використання прогресивного JavaScript-фреймворка?
Приходь та дізнайся про:
Особливості VueJS в порівнянні з іншими JS Frameworks
Швидкий старт з VueJS
Можливості інтегрування компонентів VueJS у робочі сайти
Можливості розробки додатків для mobile (Android, IOS) платформи
Можливості використання в якості бібліотеки або створення повнорозмірних додатків
Івент буде корисним як для початківців, так і досвідчених фронтенд-розробників. А також всім, хто хоче бути в курсі останніх трендів фронтенд-розробки.
This document discusses improving proto types when using them in collections for RPC applications. It recommends adding an empty message type for void parameters and repeatable types for data collections. Sample code shows defining request/response messages for getting a user by name including a repeated field for the user collection. The server code returns the collection while the client code iterates over it. Implementing an online shop sample is suggested along with using the template method pattern for server internal logic. The document recommends a design patterns book and thanks the reader.
This document provides instructions for creating a gRPC Hello World sample in C# using .NET Core. It describes creating client and server projects with protobuf definition files. The server project implements a Greeter service that returns a greeting message. The client project calls the SayHello method to get a response from the server. Running the projects demonstrates a basic gRPC communication.
DevOps is a culture and practice that aims to rapidly build, test, and release software. Continuous integration requires developers to integrate code into a shared repository multiple times a day, with each check-in verified by automated builds to detect problems early. Continuous delivery is the practice of releasing every good build to users. Popular tools for continuous integration include TeamCity, Jenkins, and others.
This document provides an overview of software quality assurance and testing. It defines quality as meeting specifications and customer expectations. Software testing investigates quality by providing stakeholders information. Testing is important to prevent defects, as shown by examples of bugs that caused spacecraft and airplane failures costing lives and money. Quality assurance focuses on preventing defects through planning and verification, while quality control identifies defects through action and validation. Defects can be costly so issue tracking systems are used to manage bug lifecycles. Manual testing is time-consuming and relies on human resources while automation testing is faster, more reliable and programmable.
The document discusses the role of a user experience designer, outlining their design process which includes discovering user requirements, creating design concepts and prototypes, validating designs through research and testing, and iterating on their work through collaboration and learning. It emphasizes the importance of an iterative design process driven by user needs.
The document discusses the roles and responsibilities of a project manager in software development. It covers the software development lifecycle (SDLC), common methodologies like SCRUM, and the differences between projects and products. It also describes the typical project team roles and the key duties and qualities of an effective project manager, such as planning, organizing, leading, controlling, clear communication, managing expectations, and prioritizing the team over oneself.
The document discusses the role of a business analyst in a software project. It explains that a business analyst is involved in requirements gathering and representation. This includes eliciting requirements through preliminary discussions with customers, reviewing requirements with other roles like architects and UX designers, and specifying requirements. Requirements can be represented through user stories, use cases, documents, and other methods. User stories are written from the perspective of users and define what they want to do. Use cases outline interactions between actors and a system. Together, clearly documented requirements help ensure a project delivers business value through the right software solution.
This document discusses documentation in software development and architecture. It provides an overview of different types of diagrams used for documentation, including structure diagrams like class and component diagrams, behavior diagrams like activity and state machine diagrams, and interaction diagrams like sequence and communication diagrams. The document also discusses challenges with documentation, including that UML can be too technical or not technical enough, as well as strategies for documentation like self-documenting code, XML documentation, and naming conventions. Finally, it presents some popular tools for documentation like Visio, Draw.io, Gliffy, and Sparx Enterprise Architect.
2. Що нас чекає
• Короткий огляд Java
Script Frameworks
• Огляд Angular 2
• Розбір основних
компонентів Angular 2
• Demo
3. JS Frameworks. Навіщо вони вам?
• Client-side має більше
«відповідальності» ніж
колись
• Фреймворк надає
інфраструктуру для
розробки (очевидно)
• Фреймворк пропагує
певні підходи і стандарти
• Він може спростити
життя розробника
6. Переваги та Недоліки
• Плюси
Швидкодія
Архітектурне рішення
TypeScript
Простота вивчення
Велике ком’юніті
Підтримка Google
o Мінуси
o Специфічний синтаксис
темплейтів
o TypeScript
9. Component – це основний структурний блок
додатку на Angular. Додаток можна уявити,
як набір компонентів, які взаємодіють між
собою.
10. Структура Компонента
Template
• Відображення
з HTML
• Прив’язка
даних
• Використання
директив
Class
• Клас на
TypeScript
• Логіка програми
• Властивості та
методи
Metadata
• Дані для самого
Angular
• Декоратор для
класу
15. Сервіс – це простий клас, який призначений
для виконання кокретних дій. Він може
повторно застосовуватись, використовується
компонентами, але незалежний від них.
16. Сервіси та DI
Для DI сервіса:
• Створити клас
сервіса
• Зареєструвати
сервіс в контейнері
• Заін’єктити в
компонент через
конструктор
18. Комунікація із сервером
Для комунікації
використовується
HTTP Client, який
входить в склад
фреймворка і
працює на основі
Observables
https://angular.io/docs/ts/latest/guide/server-communication.html
19. Роутінг
Routing – забезпечує
процес переходу
юзера між
функціональними
елементами SAP.
Використовується
для навігації по
додатку. https://angular.io/docs/ts/latest/guide/router.html
20. Що не потрапило в презентацію
• Pipes
• Angular Lifecycle
• @Input, @Output та деталі про Nested
Components
• Та багато іншого
21. Корисні Посилання
• Офіційна документація
https://angular.io/docs/ts/la
• Хаб з ресурсами
http://www.angular2.com/
23. P.S.
До наступного юніта вам потрібно
інсталювати:
Лекція 1: JDK; Eclipse IDE
Лекція 2-5: Android Studio; Android SDK;
Genymotion emulator: install and download any
device image (or a couple: phone and tablet).
#4: Функції client-side стали ширшими. Тепер досить велика частина логіки виконується на client-side, що дозволяє зменшити навантаження на сервер. Проте разом з тим зростає відповідальність клієнтської сторони
Фреймоврки надають нам інфраструктуру для розробки, беручи на себе роботу над основними рутинними і не зовсім завданнями, з якими доводиться працювати
Використання фреймворка так чи інакше спонукає використовувати певні підходи, які закладені розробниками фреймворка. З одного боку це робить код уніфікованим і «інтернаціональним», з іншого – в специфічних випадках це може заважати
Оскільки фреймворки перебирають на себе багато роботи, яку засвичай потрібно писати самому – кількість коду зменшується. А менше коду банально легше супортити, поклавшись на добре протестований фреймворк.
#5: Статистика по використанню найбільш трендових JS Frameworks.
Статистика взята із сайту http://trends.builtwith.com/
Описано відсоток сайтів, на яких використовується той чи інший фреймворк.
Для Angular враховане використання 1-ої версії фреймворка.
На слайді не згадано багато інщих фреймворків., зокрема: Ember, Knockout,
Цікава порівняльна характеристика є в статті:
https://www.airpair.com/js/javascript-framework-comparison#6-1-the-good-parts
#6: Надалі більш детально розглянемо Angular і принципи його роботи.
Розглядатимемо саме його, тому що він активно використовується на ринку і розвивається інтенсивними темпами. А також з ряду причин, які розглянуті на наступних слайдах.
#7: Переваги Angular:
Швидкий і зручний механізм привязки даних, який в Angular 2 зазнав значної трансформації і тепер в рази швидший і оптимізований.
Побудова самого фреймворку, і пропонована схема розробки є досить зручною та зрозумілою
Рекомендовано використовувати TypeScript, який є субєктивно досить зручним і привітнішим для людей, які прийшли з бек-енду
Має середню складність для вивчення. З ним легко почати працювати, проте на розбрі всіх механізмів роботи потрібен час.
Ангулар має велику підтримку спільноти програмістів. Зокрема велика кількість запитань вже вирішено на Stack Overflow і зважаючи на популярність фреймворка 2-га версія в цьому плані не підкачає
Ангулар розробляється під крилом Google, що не можна ігнорувати.
Недоліки:
Специфічний синтаксис побудови темплейтів. Є досить багато всяких різних правил, притаманних суто Ангулару
Для людей, які прийшли з фронт-енду TypeScript може видатись незвичним з своїм тайп-чекінгом і іншими особливостями
#8: На попередньому слайді згадувався TypeScript. Ангулар пропагує використання його для побудови додатків. Наразі більшість документації описана саме для нього.
Проте створювати додатки можна і з використанням інших мов:
ES (5, 2015)
Dart
TypeScript
#9: Класична хай-левел архітектура фреймворка, якою її показує сам Google.
Кожен із компонентів детальніше буде розглянутий на наступних слайдах.
Загалом архітектуру можна описати наступним чином:
В центрі стоїть компонент, який взаємодії із відображенням (темплейтом) використовуючи механізми прив’язки даних.
Компонент може використовувати різні сервіси, яким він делегує більшість завдань, які пов’язані із маніпуляціями над даними (калькуляція, валідація, взаємодія із сервером тощо)
Для того, щоб компонет міг взаємодіяти із сервісами використовується механізм Dependency Injection, який реалізовується з допомогою Injector-а
Для розробки темплейта використовуються спеціальні директиви, які дозволяють спростити деякі механізми маніпуляції над відображенням
#11: Структуру компонента можна описати як взаємозв’язок між Темплейтом і Класом, який містить метадані.
Роль темплейта – надати відображення, в якому описана привязка даних між кодом і Темплейтом
Роль класа – вміщувати логіку репрезентації даних і їх обробки
Метадані – надають сервісну інформацію про компонент, яка використовується Ангуларом для побудови алпікейшина.
#12: Структорний розподіл із попереднього слайду в коді на TypeScript виглядає так, як це показано на даному слайді.
#13: Шаблон можна описати, як відображення деякого компонента, яке створене з допомогою HTML. При цьому використовується спеціланий синтаксис для забезпечення роботи механізму привязки даних. Привязка даних реалізує обмін інформацією між елементами DOM та логікою компонента на JS.
Окрім того для реалізації певних комон задач використовуються директиви, які надають додаткові можливості маніпуляції над елементами сторінки.
#14: В Angular 2 реалізовано 4 типи прив’язки даних.
Інтерполяція: тип прив’язки, який працює в одному напрямку (з коду в темплейт). Дуже грубо кажучи він дозволяє привязати значення якоїсь змінною до вмісту якогось HTML елемента. При цьому зміна значення змінної в коді призводить до оновлення HTML елемента
Прив’язка подій: дозволяє визначити деякий метод, який є в коді компонента, як обробник події, яка стається на HTML-елементі. Такий тип працює однонаправлено – від темплейта до коду.
Прив’язка властивостей: чимось схожа на інтерполяцію, проте більш специфічна. Дозволяє прив’язати властивості HTML-елемента до деякого об’єкта в коді. Працює як і інтерполяція однонаправлено – від коду до темплейта
Двостороння прив’язка: найчастіше використовується для елементів вводу. Наодмінно від інших працює двонаправлено. Для прикладу, якщо в юзера є текстове поле, то зміни, які він вводить в нього, автоматично синхронізуються з кодом. І навпаки, якщо змінна, яка прив’язана до текстового поля, змінилася з коду – відображення теж міняється.
#15: Директиви дозволяють нам розширити можливості побудови HTML.
Ангулар надає наступні вбудовані директиви:
ngIf – показати елементи, якщо виконується умова
ngFor – показати наступне відображення для всіх елементів всередині деякої колекції
ngSwitch – в залежності від значення ключа показати те чи інше відображення
ngClass – застосувати клас, якщо виконуються деякі умови
ngStyle – застосувати стиль, якщо виконуються деякі умови
Окрім того можна і треба створювати свої кастомні директиви.
#17: В Angular продумано використання механізму інєкції залежностей, що є дуже зручно і дозволя використовувати принцип IoC.
Для реалізації DI сервіса потрібно:
Створити сам сервіс і позначити його декоратором Injectable
Зареєструвати сервіс в контейнері компонента
Виконати механізм DI через конструктор в компоненті, який використовує сервіс
#18: Код, який демонструє основні кроки по реєстрації і інєкції залежностей в коді.
#19: Більше детально про комунікацію через HTTP можна почитати за посиланням на слайді. Ця тема надто широка, щоб розглянути її в межах презентації.
#20: Документація по роутінгу все ще розробляється, тому можуть бути деякі зміни.
#21: Angular – це великий та потужний фреймворк, який має багато можливостей. Віндповідно - описати його за одну лекцію просто не можливо.
В презентації розкриті самі основні елементи фреймворка.
На слайді продемонстровані базові речі, які не увійшли в цю презентацію.
#24: Нагадування про те, що потрібно доставити пред лекціями Java і Android.