Результати пошуку
ITVDN: курси програмування
Відеокурси з
програмування

Замовити дзвінок

Вибери свою IT спеціальність

Підписка

Замовити дзвінок

+38 099 757 27 82
Результати пошуку за запитом: Обучение c
Що таке нативні та кросплатформні програми? Плюси і мінуси.

Автор: Армен Маїлян

Что такое нативные приложения? Что из себя представляют кроссплатформенные приложения? Какие инструменты для разработки кроссплатформенных приложений применяют чаще всего? Преимущества и недостатки нативного подхода Преимущества и недостатки кроссплатформенных приложений Вывод Мировая статистика использования смартфонов показывает абсолютное преобладание всего двух мобильных операционных систем. Так, по данным портала statista.com, во втором квартале 2018 OS  Android была установлена на 88% всех используемых смартфонов, а iOs – на 11.9%. Данные портала netmarketshare.com, в свою очередь, показывают на апрель 2019 для OS  Android – 69.63%, а для iOs - 28.50%. По состоянию на март 2019 в Google Play Store находилось более 2 600 000 приложений. В Apple App Store, по данным на июль 2018 – 2 450 220 приложений. В течение последних лет количество доступных приложений растет на сотни тысяч в год. По прогнозам statista – к 2020 году объем рынка мобильных приложений приблизится к 190 млрд $. При таком, постоянно растущем количестве конкурентов, перед разработчиками мобильных приложений встает вопрос - какой подход использовать в разработке, чтобы новые, конкурентоспособные приложения: разрабатывались быстро; получались качественными и надежными; легко обновлялись и поддерживались; легко задействовали все необходимые возможности платформы. Фактически, рынок заставляет разработчика делать выбор между разработкой кроссплатформенных приложений и разработкой нативных приложений. Рассмотрим детальнее, что представляет из себя каждый из указанных подходов.   Что такое нативные приложения? Нативные приложения (от англ. native - родной) разрабатываются под конкретную аппаратно-программную платформу и пишутся на языках, созданных для данной платформы. И iOs, и Android имеют свои SDK (от англ. software development kit — набор средств разработки) и свой стек технологий, завязанные на определенный язык программирования. Например, родными языками для Android являются Java и Kotlin, для iOS, соответственно - Swift и Objective-C. Нативные приложения создаются специально для запуска на целевой платформе - с поддержкой всех нативных технологий и аппаратных возможностей конкретной платформы.   Что из себя представляют кроссплатформенные приложения? Как следует из названия, кроссплатформенность подразумевает создание приложений, которые могут работать в различных операционных системах. После написания кода приложения его можно развернуть на разных устройствах и платформах, не беспокоясь о проблемах несовместимости. Это универсальный подход, который широко используется для экономии времени и денег на разработку. Часто для этого используются специализированные кроссплатформенные фреймворки. Примером такой разработки является применение фреймворка Xamarin для создания приложений, работающих не только на Windows. Благодаря использованию Mono (опенсорс реализации платформы .Net), проекты, написанные на C#, успешно запускаются на Unix-like системах – iOs, Android, Linux. Какие инструменты для разработки кроссплатформенных приложений применяют чаще всего? Ссылаясь на статистику appfigures.com можно выделить такие инструменты: Как мы видим наиболее часто применяемым инструментом разработки кроссплатформенных мобильных приложений на конец 2017 года был Cordova – 39.89%. Вторым по частоте применения инструментом является Unity – 30.93%. Третьим – Adobe Flash с 10.39%. Следом идут Cocos2D – 9.37%, Xamarin – 4.5%, Appcelerator – 3.79%, Corona – 2.68%, React Native – 1.85%. Итак, стоит ли вам инвестировать в разработку отдельных нативных приложений на несколько платформ сразу, или убивать двух зайцев одним выстрелом, разрабатывая кроссплатформенные приложения? Или может стоит вообще сосредоточиться только на одной платформе и не обращать внимание на другую, пока не достигнут успех среди приложений первой? По данным портала appfigures.com на начало 2018 года количество приложений, присутствующих на обеих популярных платформах, было вполне ощутимым: 450 тысяч приложений на обеих платформах. Это более 28% приложений в Apple App store и 14% в Google Play Store. Это выглядит достаточно весомой частью, чтобы задуматься об присутствии на обеих платформах и попытке экономии используя кроссплатформенную разработку. По данным того же портала, многие уже существующие приложения расширяют свой рынок, выходя, со временем, на другой платформе. При че чаще приложения выходят дополнительно на Android, выпускаясь изначально под iOs. Можно также наблюдать тенденцию к снижению процента кроссплатформенных приложений за 2016 – 2017 годы. Так стоит ли потратить деньги на разработку двух нативных приложений, идеально соответствующих каждой платформе, или есть смысл сэкономить ресурсы и получить одно – кроссплатформенное? Давайте рассмотрим плюсы и минусы каждого из указанных подходов.   Преимущества и недостатки нативного подхода Плюсы нативных приложений Высокая производительность Поскольку технологии, используемые при разработке платформозависимых приложений, напрямую связаны с этой платформой, собственный нативный код имеет прямой доступ ко всем функциям операционной системы. Это, более простое взаимодействие приложения с собственными функциями мобильных устройств, повышает общую производительность приложения, особенно при представлении графического или мультимедийного контента. Следовательно, создание нагруженных приложений с использованием нативного кода может снизить время отклика,  вероятность сбоев и зависаний. Максимальное использование возможностей платформы Нативные приложения задумываются и разрабатываются, чтобы решать конкретные задачи на конкретной платформе. Это приводит к лучшему соответствию возможностей приложений аппаратным возможностям устройств, включая Bluetooth, NFC, камеру, GPS и т. д. Эта соответствие необходимо, когда приложение должно использовать такие данные, как физическое и географическое местоположение и др. Лучший пользовательский интерфейс Поскольку нативные приложения напрямую интегрируются с мобильной операционной системой, воспринимая и используя все доступные возможности «железа», пользователи могут перемещаться по привычному интерфейсу без особых хлопот, что приводит к положительному пользовательскому опыту (UX) и стабильному повторному использованию. К примеру сейчас, при большом количестве разнообразных вариантов разрешений экранов смартфонов очень важно иметь приложение, оптимизированное под такой экран, чтобы пользователю было удобно этим приложением пользоваться. Лучшее позиционирование в магазинах приложений Качество пользовательского опыта является важным рейтинговым показателем в магазинах приложений. Если приложение имеет высокую оценку пользовательского опыта, оно будет более высоко оценено магазином приложений, что ведет к большему числу рекомендаций для разной аудитории и увеличению доходов от приложения, соответственно. Есть предположение, что в магазинах приложений сами механизмы ранжирования будут лучше представлять приложения именно нативные для платформы, из-за их заведомо более высокой производительности и простоты использования. Минусы разработки нативных приложений Дороговизна и затраты времени на разработку Без сомнения, создание отдельных приложений сразу под каждую из нескольких операционных систем может значительно продлить процесс разработки. Один и тот же программный код не может быть развернут на разных платформах, и программистам потребуется больше времени для преобразования и перезаписи кода, что увеличивает затраты и время разработки. Если компания хочет для каждой из платформ создавать отдельные приложения, она может оказаться вынуждена нанять дополнительных программистов-специалистов. Например, один разработчик будет сосредоточен на разработке приложений для iOS, а другой - на разработке приложений для Android, что еще больше увеличивает расходы.   Несовместимость с другой мобильной операционной системой Вам придется заранее согласиться с несовместимостью вашего приложения с другими ОС. Когда разрабатывается приложение под конкретную ОС, его разработчики используют язык, специфичный только для этой операционной системы: например, Objective-C или Swift - для iOS, для различных мобильных устройств на базе Android - Kotlin и Java. В этом контексте нативное приложение, которое изначально написано для iOs, не будет совместимо с устройствами на базе Android и наоборот.   Упущенные возможности Разработка приложений, ориентированных только на одну платформу, может привести к упущенным возможностям. Особенно если другие платформы заранее не принимаются во внимание. Заведомое сокращение целевого рынка может привести к потере дохода. Плюсы и минусы кроссплатформенных приложений Как следует из названия, кроссплатформенность влечет за собой создание приложений, которые могут работать в различных операционных системах. После написания кода приложения его можно развернуть на разных устройствах и платформах, не беспокоясь о проблемах несовместимости. Это универсальный подход, который широко используется для экономии времени и денег. Вот некоторые преимущества и недостатки использования кроссплатформенного подхода в разработке мобильных приложений. Плюсы кроссплатформенных приложений   Один код доступен для повторного использования на других платформах Основным преимуществом кроссплатформенной разработки мобильных приложений является тот факт, что один и тот же код может использоваться на разных мобильных платформах. В отличие от разработки нативного приложения, для кроссплатформенного приложения не требуется  использование отдельного технического стека для каждой операционной системы. Повторное использование кода позволяет легко развертывать приложение на другой платформе, так как возможности приложения, реализованные на одной платформе, будут работать и на других платформах.    Разработка кроссплатформенных приложений экономически эффективна Одна команда может реализовать нужную идею сразу на всех платформах, используя единый технологический стек. Это приводит к меньшим затратам ресурсов.   Простое и быстрое развертывание Разработчикам кроссплатформенных приложений не нужно изучать несколько технологических стеков различных платформ перед созданием своих приложений, им нужно хорошо освоить один стек разработки и особенности его применения. Поскольку нет необходимости создавать разные кодовые базы, начальное развертывание на целевых платформах происходит намного быстрее. Кроме того, будущие изменения в приложении могут выполняться одновременно, без внесения индивидуальных изменений на каждой платформе.   Кроссплатформенные приложения покрывают более широкую аудиторию Кроссплатформенные приложения предлагают разработчикам больше возможностей для охвата более широкой аудитории, поскольку такие приложения достигают пользователей всех типов и мобильных устройств, независимо от их операционной системы. Это значительно рентабельнее для бизнеса, чем присутствие только на одной платформе.   Кроссплатформенные приложения допускают одинаковый интерфейс и UX Тогда как производительность важна для любого мобильного приложения, его внешний вид (UI) и ощущения (UX) так же важны. Использование единой общей команды разработчиков и единого кода позволяет компаниям использовать одинаковый внешний вид приложения на всех платформах. То есть один и тот же пользовательский интерфейс и UX будет одинаково выглядеть на всех платформах. Недостатки кроссплатформенной разработки приложений   Кроссплатформенные приложения не являются такими гибкими, как нативные приложения Хотя задачи приложения будут реализовываться на всех платформах, скорее всего вы не сможете адаптировать готовое приложение для использования максимальных возможностей каждой из платформ.Работа с унифицированным стеком технологий не обеспечит такой же гибкости настройки и оптимизации, как применение стека технологий, индивидуального для каждой ОС.   Кроссплатформенные приложения не работают так же хорошо, как нативные приложения Использование одного универсального стека технологий приносит в жертву гибкость. Однако потеря гибкости в разработке будет означать потерю возможности улучшить производительность. Поскольку кроссплатформенные приложения отказываются от некоторой гибкости, эти приложения не будут работать так же хорошо, как нативные приложения.   Возможное несоответствие UI в различных платформах Внешний вид интерфейса приложения и правильная настройка UI для соответствия функционала в обеих системах может доставить проблем. К примеру, у каждой системы имеются свои требования к дизайну элементов UI. В определенных случаях эти требования могут оказаться взаимоисключающими.   Отправка кроссплатформенных приложений в соответствующие Магазины приложений может иметь сложности. Механизм добавления вашего приложения, являющегося кроссплатформенным, в Apple App Store и в Google Play Store будет отличаться. Требования этих магазинов приложений к представленным у них продуктам различны.  Прохождение всех проверок и выполнение всех правил для соответствия обоим магазинам будут вызывать определенные сложности.   Вывод Подведем краткие итоги. Попробуем сузить наш достаточно сложный выбор между нативной разработкой и кроссплатформенной. Обратите внимание на стратегию продвижения приложения и на его предполагаемый функционал. Если вам сразу нужен будет охват большей аудитории и у приложения функционал не является сложным - проще и дешевле воспользоваться кроссплатформенным подходом. Если вашему приложению необходимо использовать специфические особенности платформы, при этом нет необходимости в одновременном присутствии сразу и в Apple App Store, и в Google Play Store – разрабатывайте под выбранную платформу нативное приложение. И если ваши успехи покажут вам, что можно захватывать новый рынок – у вас уже будут средства на разработку под вторую платформу. Другие промежуточные варианты будут компромиссами и могут склонять чашу весов как к нативным, так и к мультиплатформенным решениям.   Используйте выбранный вами подход для построения качественных и полезных приложений.  С нашей стороны можем порекомендовать ряд видеокурсов. Для создания кроссплатформенных игр очень удобным инструментом является Unity и на ITVDN вы найдете серию видео курсов по разработке игр на Unity. Если вы хотите попробовать себя в разработке кроссплатформенных приложений с использованием такого инструмента, как Xamarin, вам могут оказаться полезными такие уроки на портале ITVDN.com, как Xamarin. Легкий старт и Разработка пользовательского графического интерфейса (GUI) на C# под Android (Xamarin). Если вы планируете в дальнейшем разработку нативных приложений под Android, мы рекомендуем начать с таких курсов - Java Starter и Java Essential. Также смотрите на ITVDN видео курсы по специальности Android Developer и iOS Developer.
Гібридні мобільні програми - міф чи реальність? Частина 1

Автор: Дмитро Івченко

Введение Мои коллеги часто задаются вопросом: ”Сколько мы еще будем писать под разные платформы отдельно?”. Им конечно нравится разрабатывать под iOS на  Obj-C или на Java под андроид, но снова и снова возникает вопрос о необходимости иметь в своей команде специалиста в обоих направлениях. Иначе вы не сможете дать доступ к сервисам всем вашим потенциальным клиентам. Если вы хотите достичь большей аудитории, потому что ваши заказчики просят об этом или вы не хотите пропустить доход от миллионов возможных пользователей, вам нужно будет сделать ваше приложение доступным (по крайней мере на двух платформах). Начните разрабатывать гибридные приложения, которые облегчат сложность разработки для нескольких платформ одновременно. Гибридное направление предполагает разработку приложений как веб-приложений, которые работают в браузере, а затем обертывание их таким образом, что они работают как родные приложения на мобильных операционных системах, таких как IOS, Android  или Windows Phone. В дополнение к одной основной полученной кодовой базе, которая значительно упрощает управление жизненным циклом вашего приложения, гибридизованные версии веб-приложения могут быть зарегистрированы с App Store компании Apple или Play Store компании Google. Эта статья призвана показать вам, как и почему вы должны придерживаться гибридного подхода в своем следующем проекте мобильных приложений. 1.2 Наступило время фреймворков Разработка начинается с выбора фреймворка, но иногда это нелегкая задача. Они вырастают, как грибы, и может быть трудно выбрать правильный. Вы можете прочитать огромное количество статей, анализировать ваши языки программирования  или рассчитать затраты и стоимость каждой из них. А можете просто открыть глаза и подумать, что на данный момент  может быть наиболее стабильным, перспективным и бесплатным веб-фреймфорком. Ответ - AngularJS. Какие есть гибридные бесплатные фреймворки, которые предоставляют разработчикам неограниченные возможности? Ответ - Cordova Давайте объединим эти два удивительных механизма, и мы получим - Ionic Framework. 1.3 Почему именно Ionic Ionic сочетает AngularJS (JavaScript) с HTML5 + CSS и использует Cordova, чтобы получить доступ к  родным  функциям устройства. Кроме того, он бесплатный, количество разработчиков и их поддержка растет с каждым днем. Так что в целом, Ionic предлагает большие возможности для создания гибридных приложений, которые не только удивительно выглядят, но также ведут себя так естественно, как родные приложения и разработаны всего на одной общей базе кода. В следующей части этой статьи будет рассмотрено как Ionic приложения могут заменить большинство из того, что вы ежедневно используете. Мы расскажем вам, как легко заменить хорошо известные компоненты из родного IOS или Android с помощью HTML5 и JavaScript, какая у них  общая  структура и как выглядит то, что вы можете достичь с гибридным подходом разработки.
Lviv GameDev Conference

Автор: Редакция ITVDN

29 марта, Арена Львов, самое крупное событие для разработчиков игр в Западной Украине - Lviv Game Dev Conference 2019! http://bit.ly/2TE2y7e Промокод на скидку в 15% “LGDITVDN” Более 500 участников, около 40 докладчиков, 5 залов и более 30 игр примут участие в конференции! И Вы должны быть ее частью! Lviv Game Dev Conference 2019 - это информация о последних трендах игровой индустрии в формате живого общения, а кроме того - интересные знакомства для начинающих и профессиональных разработчиков. Тематика докладов охватит все этапы создания игр - от возникновения идеи до выхода на глобальные рынки. Вопросы, которые будут обсуждаться на конференции: - истории успехов, полезные советы и лайфхаки от разработчиков; - узнаете, как создать собственную студию; - какие игровые механики и маркетинговые стратегии использовать; - как разработать хорошую графику и качественный звук к игре; - как создаются игры и приложения с AR / VR; - как сделать чтобы игра стала киберспортивной дисциплиной. Потоки конференции:   ◾ GameDev Business (Marketing, Production, Esport) Поток для владельцев GameDev-студий, а также маркетологов и продюсеров. Инвестиции в игрушки, поиск и взаимоотношения с паблишерами, паблишинг собственными силами, тренды игровой индустрии и яркие отечественные успехи. Как построить студию и как ею управлять. Идеальная команда проекта и где брать или растить кадры для индустрии. ◾ GameDev Tech (development, VR / AR, new technologies) Все то, что облегчает жизнь разработчикам игр и позволяет не проводить годы за C ++. И это не только Unity. ◾ GameDev Indie (от идеи до релиза) Поток для инди разработчиков. Возможно ли в современном мире одному создать крупный проект, темы, которые под силу инди разработчикам, инди-лайфстайл, истории успеха тех, кто прорвались и много интересного. ◾ Game design (Art, audio, visual) Левел-дизайн, создание персонажей, музыка, создание историй. Творчество при создании игры в ее высшем проявлении. Как делать крутые игрушки, essensials of game design Художественный арт для игры ◾ "Workshops" Некоторые темы требуют более детального раскрытия, чем это возможно на получасовом докладе. Этот поток именно для таких мастер-классов, где прямо на месте можно научиться чему-то новому.     А также Вас ждет    GameDev Exhibition - выставочная зона, где каждый желающий сможет представить свое творение! Участники смогут оценить игру, спикеры помогут советом, а спонсоры могут заинтересоваться Вашей идеей!  GameDev Awards - конкурс для разработчиков игр, который будет проходить накануне GameDevConference 2019 и непосредственно на самой конференции с целью выбрать лучшие игрушки 2018 года в номинациях: Best Studio Game 2018 Best Indie Game 2018 Best VR Game Excellence in Game Design AudienceAward - Номинация «Приз зрителей" – голосованием Победители получат не только денежные поощрения и ценные призы, но и признание и несколько ачивок. А еще! Частные встречи с докладчиками, где Вы сможете получить консультацию от эксперта, которого выберете САМИ! Завершим этот праздник грандиозной вечеринкой! Вы не можете этого пропустить!
Підсумки акції "Вивчай С# безкоштовно"

Автор: Редакция ITVDN

С 27 апреля по 11 мая 2017 года на ITVDN проходила акция "Изучай С# бесплатно". В акции приняли участие почти 2000 человек. Видео курс C# Базовый по программе Бонус+ получают: Олександр Шевчук       TP45110001 Геннадий Чурсов          TP78384475 Юрий Свешников         TP80826506 Сергей Васильев          TP01095560 Olexandr Perevoznyuk TP36787044 Сергей Слободенюк    TP85522959 Олександр Шелест      TP80451893 Detect Cast                   TP69500165 Иван Толстов                TP50689422 Valerii Nozdrenkov        TP13716570 Роман Гребенников     TP38430192 Viktoriia Chapor             TP46439276 Александр Ульянич      TP45430320 Алексей Омеличев       TP84448445 Мазной Сергей             TP04712764 Анатолий, Целищев    TP48831543 Ramil Samirkhanov        TP75470260 Svitlana Paradovska       TP56711534 Fakhriian Denys             TP07721874 Мгер Карапетян             TP87914717 Рыжов Дмитрий            TP36497447 Владислав, Кирилов    TP11878290 Петров Артем               TP78739056 Алексей Иевенко          TP15817456 Sergii Ziborov                 TP62102742 Vladimir Kapustin            TP16234857 Максим Каверин           TP22997287 Александр Бережнов  TP77420312 Евгений Нечаев              TP32699156 Сергей Беломестных   TP25806644 Сергей Середний          TP77023109 Иван Лебедкин              TP92648423 Алена Копылова            TP43244836 Катерина Герасимива TP49093779 Dima Nikitin                       TP47057281 Denys Navrotskyi            TP34145655 Алексей Сивец                 TP70508308 Вася Пупкін                       TP74985327 Ирина Лютова                 TP71608224 Константин Паздников TP85725681 Anton Pokydko                 TP62337801 Микола Коцаб'юк         TP26454978 Denis Zhibenkov             TP19810414 Dmytro Koniushyi           TP60139181 Андрей Масюк               TP21238471 Роман Швардак              TP24215409 Oleksandr Spazhev         TP78290367 Olga, Rybakova                 TP12078498 Амалия Ассе                     TP18753282 Oleksandr Mokroguz     TP06275316 Радченко Артем             TP24815650 Семен Морозов             TP38954172 Алексей Староватов     TP98727030 Андрей Тюленёв           TP28346574 Дмитрий Рыжов             TP36497447 Антон Звягинцев            TP64561840 Volodymyr Karpenko    TP23846468 Денис Бадыков               TP22809929 Вадим Бровенко            TP38328965 Андрей Краснов             TP41936921 Алексей Акулич             TP51653825 Svetlana Chigai                 TP83879480 Евгений Беляев              TP87823150 Владислав Дайнеко     TP68661840 Артём Орлов                   TP25783087 Валерий Кадыров         TP24375205 Алексей Лузгин              TP35994170 Александр Чёрный       TP02158359 Сандаара Барашкова   TP21658199 Nana Japaridze                 TP53522114 Иван Щербаков             TP10490938 Антон Звягинцев            TP64561840 Olena Osmolovska         TP95058312 Stryhelski Pavel                 TP02368555 Доступ к курсу будет открыт 12 мая 2017 года на 30 дней. Участники Илья Колодич, Alexander Kharkov и Дмитрий Савинычев не указали свои данные в сертификатах. Пожалуйста, добавьте свои данные в сертификаты и после этого свяжитесь с нашей службой поддержки в течении трех дней для получения доступа к курсу. Благодарим вас за участие в Акции и желаем успехов в изучении программирования. Оставайтесь с ITVDN!
GameDev Conference 2017

Автор: Редакция ITVDN

21 января 2017 во Львове состоится GameDev Conference 2017 - крупнейшая на западе Украины Gamedev-конференция. Конференция состоится уже в шестой раз и в этом году соберет около 500 участников и 50 докладчиков. Традиционно конференция будет проходить в 5 потоков: GameDev Business: Поток для владельцев GameDev-студий, а также маркетологов и продюсеров. Инвестиции в игрушки, поиск и взаимоотношения с паблишерами, паблишинг собственными силами, тренды игровой индустрии и яркие отечественные успехи. Как построить студию и как ею управлять. Идеальная команда проекта, где брать или растить кадры для индустрии. Идеи для игр в конкурентном мире и механизмы монетизации freetoplay игр. GameDev Tech: Поток для программистов. Все то, что облегчает жизнь разработчикам игр и позволяет не проводить годы в C ++. Работа с Unity и другими игровыми движками. Разработка игрушек на Xamarin, мобильная разработка. GameDev Art: Поток для дизайнеров, художников, саунд-дизайнеров. Разработка игрового арта, создание культовых персонажей и игровых сеттингов, музыка к играм, написание историй. Творчество при создании игры в ее высшем проявлении. GameDev Indie: Поток для инди-разработчиков. Хардкорная индивидуальная разработка игр, какие темы под силу инди-разработчикам, инди-лайфстайл, истории успеха тех, кто прорвался. Механизмы быстрой раскрутки, истории успеха украинских инди. Workshops: Некоторые темы требуют более детального раскрытия, чем это возможно сделать в получасовом докладе. Этот поток именно для таких мастер-классов, где прямо на месте можно научиться чему-то новому. Наше мероприятие создано для всех, кто интересуется играми: разработкой, продвижением, привлечением инвестиций в игровую сферу. В этом году конференция соберет лучших спикеров, которые поделятся своим опытом в этом нелегкой, но очень увлекательной сфере. Вы услышите полезные советы и лайфхак от разработчиков, которые имеют реальный опыт побед и достижений. Они расскажут об игровых механизмах, истории успеха игр а также о разработке и маркетинге. Уже известны более 15 докладов, которые будут звучать у нас на конференции. Среди них есть докладчики из таких компаний, как  N-iX, SoftServe, Wargaming, iLogos, Crystal Clear Soft, Amazon. Showcase, конкурс для разработчиков игр Ukrainian Game Award, а также много, очень много фана и общения с единомышленниками! Больше информации на сайте конференции.   Для подписчиков ITVDN мы даем промо-код ITCB010 на скидку 10%. При регистрации введите промо-код в поле «Дополнительная информация».
Подвійна вигода! Акційний пакет CodeMaster

Автор: Редакция ITVDN

Минули свята і акція скоро закінчиться. До 18 лютого ви можете придбати акційний пакет CodeMaster зі знижкою 50%.  Що входить до пакету “CodeMaster”: 🤩Доступ до всіх відео курсів ITVDN (300+ з різних мов і технологій) на 9 місяців ✅Вихідний код навчальних проєктів ✅Презентації, опорний конспект, д/з ✅Перевірка 10 домашніх завдань ✅Консультації з тренером – 60 хвилин ✅Доступ до інтерактивних практикумів ✅Онлайн тестування (16 тестів) та сертифікати ✅Дипломи з пройдених спеціальностей ✅Доступ до нових курсів, які виходитимуть під час дії підписки 🎁Ключі на професійний софт від JetBrains (IntelliJ IDEA, PyCharm, Webstorm та Rider) на 6 місяців Повна вартість пакету – 134 USD Акційна вартість – 67 USD🔥(це 7,5 USD на місяць!) Що можна вивчати на ITVDN: програмування мовами Python, Java, JavaScript, TypeScript, C#, С++, PHP та ін.; тестування програмного забезпечення (Manual QA + Automation QA); веброзробку і вебдизайн (UX/UI); розробку ігор на Unity; Android Mobile Development; технології для роботи з базами даних. Обирайте з "Оплату частинами" – це вигідно Скористайтеся зручним варіантом оплати частинами від Монобанку або ПриватБанку. Ви отримаєте повний пакет за акційною ціною без комісій і зможете розподілити оплату на кілька місяців. З історії свята World Computer Day Всесвітній день комп'ютера (World Computer Day) відзначається щорічно 15 лютого на честь запуску першого електронного комп'ютера ENIAC у 1946 році. ENIAC (Electronic Numerical Integrator and Computer) — це перший у світі повністю електронний, програмований комп'ютер загального призначення, який був розроблений в США під час Другої світової війни. Його створили вчені Джон Преспер Еккерт і Джон Вільям Мочлі в Університеті Пенсильванії, і він був офіційно представлений 15 лютого 1946 року. Що міг робити ENIAC? 🔹 Розраховувати балістику — спочатку комп'ютер розробляли для армії США, щоб швидко обчислювати траєкторії снарядів. 🔹 Обчислювати складні математичні задачі — він міг виконувати до 5000 операцій додавання або 357 операцій множення на секунду. 🔹 Допомагати у наукових дослідженнях — його використовували для розрахунків ядерних реакцій, прогнозування погоди, створення моделей аеродинаміки та навіть для досліджень у криптографії. Технічні характеристики 🖥 Вага: ~27 тонн ⚙ Розмір: ~30 метрів у довжину і 2,4 метра у висоту 💡 Використовував 17 468 електронних ламп (вони часто перегоряли) ⚡ Споживав 150 кВт електроенергії (що еквівалентно освітленню цілого кварталу) ⏳ Пам’ять: 20 10-значних чисел ⏲ Швидкість обчислень: у 1000 разів швидший за тодішні механічні калькулятори Як програмували ENIAC? Програмування відбувалося вручну, за допомогою перемикання тисяч проводів і перемикачів. Одна програма могла налаштовуватися від кількох годин до кількох днів. ENIAC був першим у світі повністю електронним, програмованим комп'ютером, який ознаменував початок ери цифрових обчислень. Відтоді 15 лютого стало професійним святом для фахівців у сфері комп'ютерних технологій. Вітаємо вас із святом і запрошуємо вивчати програмування на ITVDN!
Вивчай програмування безкоштовно. Розіграш 10 “Преміум” підписок!
Друзі, привіт! У нас крута новина. Такого ще не було і, можливо, більше не буде, тому ловіть можливість. 14 грудня ми проведемо розіграш 10 підписок “Преміум” вартістю 169,99 USD. Для когось це стане крутим подарунком – можливістю протягом року вивчати програмування, тестування, вебдизайн та інші технології безкоштовно. Буде 10 переможців, яких ми визначимо в прямому ефірі за допомогою сервісу random.org. Що отримають переможці: 🔥 Доступ до 250+ відео курсів на ITVDN на 12 місяців ✅ Вихідний код навчальних проєктів ✅ Презентації, опорний конспект, д/з ✅ Перевірка 20 домашніх завдань ✅ Консультації з тренером – 120 хвилин ✅ Доступ до інтерактивних практикумів ✅ Онлайн тестування (24 тести) та сертифікати за пройденими курсами ✅ Дипломи з пройдених спеціальностей 🚀 Доступ до нових курсів, які виходитимуть протягом року 🔥  “Преміум” – це чудова можливість підвищити ваші шанси на працевлаштування: ви зможете опанувати декілька напрямків або стати Full-stack розробником. Вже влаштовуючись на роботу, ви можете використовувати наш ресурс як додаткову базу знань, що дозволяє поглиблювати та систематизувати ваші знання для більш швидкого професійного зростання. Як взяти участь в розіграші? Бути зареєстрованим користувачем на нашому сайті. Реєстрація – в правому верхньому кутку сайту. Підписатися на наш канал в Telegram. Підписатися на YouTube-канал CodeUA. Поділитися інформацією про розіграш в одній із соціальних мереж (Facebook, LinkedIn, Twitter (X), Instagram чи TikTok). Переконайтеся, що ваш пост відкритий для загального доступу. Заявки приймаємо до 12:00 14 грудня. Розіграш відбудеться 14 грудня о 16:00 в прямому етері на YouTube-каналі CodeUA. Десятеро переможців будуть визначені за допомогою сервісу random.org. Посилання на трансляцію ми надішлемо на email, який ви вкажете у реєстраційній формі. Що можна вивчати на ITVDN? ITVDN містить велику базу знань з найрізноманітніших мов програмування та супутніх технологій, починаючи з FrontEnd, Python, Java, C#, Node.js та QA напрямків і закінчуючи технологіями для опанування мобільної розробки під Android, розробки ігор на Unity та DevOps. З усіма спеціальностями, які ви можете опанувати у форматі відео курсів, ви можете познайомитися тут. А перелік відео курсів дивіться  в нашому Каталозі. Все це буде доступно для наших 10 щасливчиків протягом 12 місяців! Бажаємо удачі в розіграші та щасливих новорічних свят! UPD від 14.12.2023 Переможці: Shumelchyk Kateryna Галапа Ігор Мельнічук Михайло Мацан Віталій Кириленко Катерина Валентин Вавілов Грипіч Надія Зятковський Богдан Володимир Ткачук Mariia Kraievska Запис розіграшу: https://www.youtube.com/watch?v=xVZ3-8c7Fps
Техніки тестування для С# розробників. Рівень Advanced. Частина 2.

Автор: Наурінський Юрій

<p>На вебинаре мы продолжим знакомство с &laquo;продвинутыми&raquo; техниками тестирования, которыми должен владеть опытный C# разработчик. Первая встреча по этой теме состоялась 4 марта, <a href="https://itvdn.com/ru/webinars/description/testing-techniques-csharp">запись вебинара</a> доступна на нашем сайте.</p> <p>На первой встрече были рассмотрны такие техники тестирования:</p> <ol> <li style="margin-left: 36pt;">Property based testing.</li> <li style="margin-left: 36pt;">Performance testing.</li> <li style="margin-left: 36pt;">Load testing.</li> </ol> <p>Ниже перечислены техники, которые мы рассмотрим на встрече 27 мая.</p> <p><strong>Approval</strong><strong> testing</strong><strong>.</strong></p> <p>Техника тестирования, применяемая зачастую в юнит-тестах, для наглядного человеко-читаемого сравнения тестовых результатов. Данная техника тестирования призвана решить проблему, возникающую при попытке протестировать функции, который имеют на выходе более сложный результат чем обычные строка, число, или даже простой объект с несколькими полями.</p> <p><strong>Mutation</strong><strong> testing</strong><strong>.</strong></p> <p>Техника тестирования, применяемая для проверки достаточности и корректности покрытия кода тестами. Основана на так называемых мутациях &ndash; небольшие изменения кода программы, само мутационное тестирование проверяет реакцию изначальных тестов на заранее заданный набор мутаций.</p> <p><strong>Architecture</strong><strong> testing</strong><strong>.</strong></p> <p>Техника тестирования, применяемая для постоянно растущих проектов, в которых происходит постоянное усложнение кодовой базы и сценариев использования. Данная техника использует специальные тесты, которые инкапсулируют в себе конвенции об именовании классов, пространств имён, проектов, а также о самом дизайне приложения и о его зависимостях.</p> <p>Участников вебинара ждет немного теории, примеры и ответы на вопросы. Все примеры будут на языке С#.</p> <p><strong>План </strong><strong>вебинара:</strong></p> <ol> <li>Approval testing.</li> <li>Mutation testing.</li> <li>Architecture testing.</li> </ol> <p><strong>Целевая аудитория:</strong></p> <p>Данный вебинар будет интересен С# разработчикам, а также тестировщикам, которые уже знакомы с пирамидой тестирования и желают узнать больше про остальные техники тестирования, которые не ограничиваются пирамидой тестирования. Перед просмотром вебинара желательно иметь представление о базовых темах, вроде Unit testing, Integration testing, Functional testing.</p>
Огляд популярних сервісів тестування

Автор: Редакция ITVDN

Так как 2017 год совсем недавно остался позади, наша команда решила сделать небольшой новогодний подарок в виде разбора лучших сред автоматического тестирования, обладающих, помимо прочего, открытым исходным кодом. 1. Robot Framework Robot Framework – это фреймворк для приемного тестирования (Acceptance Testing) и, помимо прочего, так называемого ATDD (Acceptance Test-Driven Development). Среда написана на языке Python, но также может быть развернута в рамках Jython (Java) и IronPython (.NET). По сей причине считается кроссплатформенной, ибо поддерживает Windows, Linux и MacOS соответственно. Достоинства: Упрощает автоматическое тестирование благодаря использованию подхода keyword-driven тестирования, в значительной мере помогая тестерам в создании читабельных, легко производимых тестов.  Простота в использовании «тестового синтаксиса». Имеет в наличии отменную среду, включающую в себя богатый набор различных инструментов и библиотек, выполненных в виде отдельных проектов. Огромное количество различных API делает систему очень гибкой. Хотя и не в виде встроенной функции, однако Robot Framework позволяет проводить параллельные тесты при использовании библиотеки pabot или Selenium Grid. Недостатки: Трудно настроить структуру html-отчетов. Примечание: эта среда будет очень полезной, если Вы нацеливаетесь на Keyword-Driven тестирование – и обширная база библиотек и расширений вряд ли заставит Вас в этом усомниться. Однако, чтобы добавить новые ключевые слова (RF test library API) базовые познания Java/Python/C программирования обязательны. 2. JUnit JUnit – это среда для проведения юнит-тестов для приложений, написанных на языке Java. Достоинства: Тесты пишутся при помощи чистейшего Java – одного из лидирующих языков программирования современности. Поддерживает TTD. Позволяет создать свой собственный пакет для юнит-тестирования. Прекрасно интегрируется в различные инструменты разработчика (к примеру – Maven) или среды разработки (к примеру, IntelliJ). Благодаря достаточно высокой популярности поиск документации не составляет труда. Недостатки: Если необходимо использовать возможности mock-объектов, пользователь вынужден прибегать к помощи сторонних библиотек (Mockito или другие). Чтение тестов у людей без технического образования может вызвать затруднения, так как, к примеру, имена методов в JUnit ограничены условностями языка Java. Примечание: для тех разработчиков, которые желают писать юнит-тесты для собственных Java-приложений JUnit, пожалуй, лучшее из того, что можно бы пожелать. Однако, в случае если речь идет о функциональном тестировании программ, написанных на других языках, вероятно, Вам стоит выбрать другую среду. 3. Spock Spock – это среда тестирования и спецификации для приложений, написанных на языках Java или Groovy. За основу взята среда JUnit. Достоинства: Позволяет создавать читабельные тесты с поддержкой чисто английских предложений, без необходимости следовать ограничениям языков программирования. Предоставляет информативный контекст возникнувшей проблемы. Плюс, дает легко понять, что необходимо сделать, дабы исправить обнаруженный недостаток. Имеет встроенную поддержку mock и stab объектов. Поддерживает DDT (Data-Driven Tests). Недостатки: Требует базовых знаний языка программирования Groovy. Примечание: идеально подойдет, если Ваше приложение базируется на JVM, плюс, Вы нацеливаетесь на BDD автоматическое тестирование с DSL. 4. NUnit NUnit – среда для юнит-тестирования языков .NET виртуальной машины. Имевшей однажды огромное влияние JUnit, среда NUnit была полностью написана на C#. Помимо прочего, в арсенале так же имеется целый спектр новых возможностей, позволяющих использовать все преимущества языков .NET. Достоинства: Быстрая инициализация и выполнение теста. Использует методы типа Assert с поддержкой аннотаций. Позволяет проводить параллельное тестирование. Поддерживает TDD. Недостатки: Так как использует только языки .NET стандарта, не является кроссплатформенным. Интеграция в среду Visual Studio не представляется возможной. Использование NUnit означает больше расходов на сопровождение проекта. Примечание: прекрасный фреймворк юнит-тестирования для C# с открытым исходным кодом, долгой историей и проверенной репутацией. Однако, в случае, если вы уже активно работаете с .NET языками, обратите свое внимание на MSTest. 5. TestNG TestNG – сервис автоматического тестирования для Java. По сути, это те же JUnit и NUnit, но с улучшениями и новым функционалом (ибо NG читается как «новое поколение» - Next Generation). Среда была разработка для покрытия всех видов тестирования, которые только могут понадобится. А именно: юнит-тестирование, функциональное тестирование, тестирование интеграции и прочее. Достоинства: Прост во внедрении в проект. Позволяет разработчику писать гибкие и всеобъемлющие тесты. Поддерживает DDT. Простые в понимании аннотации. Простота в группировании тестовых кейсов. Позволяет создавать параллельные тесты. Недостатки: Так как поддерживает только Java, Вы должны иметь хотя бы базовые познания этого языка. Установка и калибровка среды тестирования занимает время. Примечание: если вы работаете с Java, ищите инструмент для мульти задачного тестирования и можете уделить некоторое время на установку программы – TestNG определенно для Вас. 6. Jasmine Jasmine – среда для юнит-тестирования JavaScript. Так же известен как Behavior Driven Development (BDD) подход JavaScript тестирования. Идеально подходит для веб-сайтов, проектов Node.js и вообще для всего, где JavaScript может найти свое применение. В основном используется в связке с AngularJS. Достоинства: Кроме JavaScript, так же может быть применен по отношению к Python или Ruby. Чрезвычайно полезен, если Вам нужен один сервис тестирования как для клиентской разработки, так и для серверной. Поддерживается множеством CI (Codeship, Travic и прочее). Имеет встроенный Assert-синтаксис. Недостатки: В большинстве сценариях требует прогонщика тестов (такого как Karma). В случае с асинхронным тестированием возникают трудности. Примечание: Jasmine может оказаться прекрасным решением, если Вы нуждаетесь в унифицированном (клиент-серверном) сервисе юнит-тестирования. 7. Mocha Mocha – это еще один сервис JavaScript юнит-тестирования с занятным для русскоязычного сектора названием и отнюдь не банальным функционалом. Используется на NodeJs, в основном часто применяется в связке с ReactJS. Достоинства: Обладает встроенным тестовым прогонщиком. Поддерживает асинхронное тестирование. Позволяет большую гибкость, так как Вы спокойно можете использовать любую Assert-библиотеку (Chai, expect.js, Must.js прочие), которая будет отвечать Вашим требованиям (как замена стандартной NodeJs функции «assert»). Недостатки: Относительно новый сервис (появился в 2012 году), что означает он в активном развитии и некоторые аспекты технологии могут быть не до конца задокументированными. Предоставляет только базовую структуру тестов, плюс требует дополнительную ручную установку и конфигурацию (для кого-то может быть плюсом). Примечание: если Вы ищите независимую среду юнит-тестирования для JavaScript, Mocha – Ваше все! А какую среду автоматического тестирования используете Вы? Что хорошего и что не очень Вы могли бы о ней сказать? Пожалуйста, приобщайтесь к дискуссии в комментариях! 😊 Автор перевода: Евгений Лукашук Оригинал статьи
Система контролю версій "просто, як двері" або як навчитися користуватися git за пару годин

Автор: Дмитро Івченко

Введение Я достаточно давно использую git практически во всех проектах. За это время я успел многому научиться и хочу поделиться опытом с читателями. Как известно, все новое пугает. Так говорит половина моих знакомых, которые не захотели потратить пару часов, чтобы разобраться с git раз и навсегда. Скорее всего, после прочтения этой статьи и они, и вы поймете, что это проще, чем кажется. Я постараюсь показать, как эта VCS (Version Controll System) помогает разрабатывать проект. Эта статья рекомендована к прочтению тем, кто только делает первые шаги в разработке больших проектов. Итак, Git — это «распределенная система контроля версий», где «система контроля версий» означает то, что она запоминает историю изменения своих файлов, а распределенная значит то, что мы можем работать с ней без доступа к интернету. Для того чтобы начать: Git акаунт на https://github.com Консоль или же графический интерфейс. Человек по ту сторону монитора, что сможет это поставить под свою ось, будь то Windows, Mac OS или Linux . Моё окружение - это Mac OS X + Webstorm + Git + Bash . Если у вас Windows, то, скорее всего, будет msysgit (git-bash) + TortoiseGit. Как вы уже поняли, придется работать с консолью, потому вам будет необходимо усвоить несколько команд для установки git на вашу операционную систему. Поговорим немного о том, как же установить git: Установка для Linux Установить Git под Linux как бинарный пакет можно, используя обычный менеджер. Если у вас установлена Fedora, можно воспользовать yum: $ yum install git-core Если же у вас дистрибутив, например, Ubuntu,  то вам нужно: $ apt-get install git Установка для Mac Существует два способа установки Git на Mac OS X. Первый - использовать графический компоновщик Git, который вы можете скачать здесь: http://goo.gl/nB31LK или же, для более продвинутых пользователей, просто вставьте следующую строчку в терминал $ sudo port install gitweb + git-core +doc  + bash_completion Установка в Windows Настроить Git в Windows просто: у проекта msysGit процедура установки  самая легкая. Просто скачайте *.exe инсталлятор на GitHub: http://goo.gl/cmGQSj После установки у вас будет и консольная версия, и стандартная графическая. Остались вопросы по установке? Тогда вам сюда - https://goo.gl/lec2M0 Git — это коллекция инструментов для решения определенных проблем. Давайте рассмотрим компоненты Git пошагово: Коммиты Коммит (патч) — показывает некоторые изменения в файлах, что подверглись изменениям с момента предыдущего коммита. Коммит также содержит заголовки, в которых есть автор, время его создания и прочее. Git-коммит шифрует это в заголовке «parent», указывая, после какого коммита его нужно наложить. Как применить коммит к другому коммиту? Мы можем применить коммит только к полному набору файлов. Но после этого мы получим измененный набор файлов. Поэтому «коммит» также показывает состояние репозитория после добавления нового патча. История Git — это вся цепочка изменений для воссоздания кодовой базы с нуля, коммит за коммитом. История коммиттов может выглядеть так: Commit C: Родитель — B. Добавь “Systematics” в конец файла «readMe.txt». Commit B: Родитель — A. Добавь “Bionic” в конец файла «readMe.txt». Commit A: Создай файл «readMe.txt», содержащий “Cyber”. Commit A здесь первый, это значит, что у него нет родителя. Это значит, что его патч может только добавить новые файлы — в репозитории нет никаких существующих файлов для изменения. Во всем остальном это такой же коммит, как и все остальные. Итак, мы начинаем с пустого файла. Затем мы применяем патч A, который дает текст “Cyber”. Затем мы можем применить патч B, который даст нам “Cyber Bionic”.  Наконец, мы применяем C, который дает “Cyber Bionic Systematics”. Визуализация Git изображает историю коммиттов слева-направо, описанное выше будет выглядеть так: A → B → C. Тэги Тэги —  имена для коммитов, чем-то похожие на ветки. Однако, тэги должны быть постоянными: они, в основном, используются для названий версий релизов. Вы можете переключаться по тэгу, но тэг не может быть вашей «текущей веткой», и тэг никогда не появится автоматически, если вы коммитите впервые. Также тэги (чаще всего) глобальные, с неограниченным пространством имен, как ветки. Как просмотреть историю последних коммитов: git log покажет название последних трех коммитов в ветке. git log --oneline --graph --decorate намного лучше для просмотра (можете сами убедиться). Вы также можете установить tig, который делает, в основном, то же самое, но вы сможете использовать Enter на коммите, чтобы увидеть различия. git log --follow показывает нам все изменения, только для конкретного файла (директории). --follow означает - следить за историей файла, включая изменение имени файла. А сейчас время для команд, которые вы будете писать каждый день по многу раз $ git status покажет, в какой ветке вы находитесь и какие файлы подверглись изменениям. git add file_name добавляет только указанный файл (файлы) к патчу. git add -A (all) добавляет к патчу все изменения, которые нужны вам в последующем коммите. git commit -a откроет редактор для ввода текста коммита, затем будет создан коммит со всеми произведенными изменениями. git commit -m “what is to change” запишет коммит и даст ему то описание, которое есть в скобках git branch name создает новую ветку под названием name, основаную на коммите, но не переключается на нее. Для этого тебе понадобиться команда: git checkout -b origin/develop, которая создаст новую ветку, основанную на origin/develop, или на той, в которой вы находитесь, и переключится на нее. git checkout производит переключение в ветку, которую вы укажите. Вы также можете перейти в удаленную ветку, в тэг или в конкретный коммит.   git rm file_name говорит Git, что ты собираешься удалить файл, а также удаляет его физически. Конфликты слияния Если вы делаете слияние или отправку изменений, возможно, ваши изменения будут конфликтовать с чужими. Git выведет сообщение: "Автоматическое слияние не удалось, вы должны сделать это вручную". Если вы посмотрите git status, то обнаружите новую секцию для конфликтующих файлов. И вам нужно это исправить, чтобы завершить слияние. Откройте конфликтующий файл и увидите что-то вроде этого: <<<<<<< то что мы изменили ======== то что сделал ваш предшественник >>>>>>>> origin/develop   Это говорит нам о том, что двое людей отредактировали одни и те же строки в том же самом файле по-разному, а Git не знает, что должно быть результатом. Просто отредактируйте файл, как нужно, и выполните git add -А, чтобы сообщить Git, что вы готовы к отправке. Когда все конфликты будут решены и все файлы добавлены через git add -A, сделайте простой git commit для полного слияния. Примечание: Проверяйте, что вы действительно исправили все конфликты в файлах после слияния. Иногда, конфликт - это когда один программист отредактировал файл, а другой удалил этот файл. Когда такое случается, Git покажет тебе, кто что сделал. Надеюсь, что статья дала вам много новых знаний. И если это так - то вперед, создавать первый репозиторий на github.com и закреплять все, что прочитали.
Notification success