- 267
- 229 704
Кравець Кодить | Android
Ukraine
Приєднався 9 вер 2013
Я - Андрій Кравець. Програмую уже 8 років. Спеціалізація - розробка мобільних додатків для Android.
Моя основна робота: писати код, робити код рев'ю, співбесідувати кандидатів, менторити новоприбулих.
У вільний від основної роботи час, я допомагаю людям вчити програмування. Спочатку я навчився програмувати сам з нуля. Потім навчив програмувати свою дівчину. Далі зібрав групу людей, які вчились програмувати під моїм супроводом. Загалом із моїх студентів - 4-ро вже працюють програмістами.
На цьому каналі, буду ділитися своїм досвідом:
- відповідати на найпопулярніші питання на тему, як стати програмістом;
- викладати технічні уроки. Наприклад, "Курси Kotlin з нуля українською мовою".
- перша програма на Android
- Git
Загалом, все що потрібно, аби стати Android програмістом.
Моя основна робота: писати код, робити код рев'ю, співбесідувати кандидатів, менторити новоприбулих.
У вільний від основної роботи час, я допомагаю людям вчити програмування. Спочатку я навчився програмувати сам з нуля. Потім навчив програмувати свою дівчину. Далі зібрав групу людей, які вчились програмувати під моїм супроводом. Загалом із моїх студентів - 4-ро вже працюють програмістами.
На цьому каналі, буду ділитися своїм досвідом:
- відповідати на найпопулярніші питання на тему, як стати програмістом;
- викладати технічні уроки. Наприклад, "Курси Kotlin з нуля українською мовою".
- перша програма на Android
- Git
Загалом, все що потрібно, аби стати Android програмістом.
#3 Переваги Корутин
🔹 Телеграм Канал. Мої оновлення і рекомендації: t.me/kravets_coding
🔹 Телеграм Спільнота. Група обговорення: t.me/android_razom
🎥 ua-cam.com/play/PL3o5sNxukLFBGmh0hh6HI4khggWENQStt.html&si=VkowfZTj-owo1Sci
🎥 ua-cam.com/play/PL3o5sNxukLFBJYifmCcHpwXZSql5-OFB0.html&si=1ZUss1U2ajtznc5o
🎥 ua-cam.com/play/PL3o5sNxukLFCZ2xN_pHLr5AuAc8BcWit1.html&si=ZhM1k5bwXAkQnKpH
🔹 Телеграм Спільнота. Група обговорення: t.me/android_razom
🎥 ua-cam.com/play/PL3o5sNxukLFBGmh0hh6HI4khggWENQStt.html&si=VkowfZTj-owo1Sci
🎥 ua-cam.com/play/PL3o5sNxukLFBJYifmCcHpwXZSql5-OFB0.html&si=1ZUss1U2ajtznc5o
🎥 ua-cam.com/play/PL3o5sNxukLFCZ2xN_pHLr5AuAc8BcWit1.html&si=ZhM1k5bwXAkQnKpH
Переглядів: 328
Відео
#2 Корутини і Потоки. Комплексне бачення
Переглядів 2369 місяців тому
🔹 Телеграм Канал. Мої оновлення рекомендації: t.me/kravets_coding 🔹 Телеграм Спільнота. Група обговорення: t.me/android_razom 🎥 ua-cam.com/play/PL3o5sNxukLFBGmh0hh6HI4khggWENQStt.html&si=VkowfZTj-owo1Sci 🎥 ua-cam.com/play/PL3o5sNxukLFBJYifmCcHpwXZSql5-OFB0.html&si=1ZUss1U2ajtznc5o 🎥 ua-cam.com/play/PL3o5sNxukLFCZ2xN_pHLr5AuAc8BcWit1.html&si=ZhM1k5bwXAkQnKpH
#1 Корутини. Про Курс
Переглядів 2809 місяців тому
🔹 Телеграм Канал. Мої оновлення рекомендації: t.me/kravets_coding 🔹 Телеграм Спільнота. Група обговорення: t.me/android_razom 🎥 ua-cam.com/play/PL3o5sNxukLFDWj_K2TbX3t7czyIaYz27v.html 🎥 ua-cam.com/play/PL3o5sNxukLFBGmh0hh6HI4khggWENQStt.html&si=VkowfZTj-owo1Sci 🎥 ua-cam.com/play/PL3o5sNxukLFBJYifmCcHpwXZSql5-OFB0.html&si=1ZUss1U2ajtznc5o
8. Лямбда у Composable функції - приклад використання
Переглядів 2119 місяців тому
Лямбда compose - це довол звична пара. Оскільки compose це по сут багато різних Composable функцій, то лямбда це зручний спосіб комунікувати між ними, делегувати певн можливост одна одній тому подібне. В цьому уроц я покажу типовий практичний приклад використання лямбди з composable функцією. Якщо ви хочете зануритись в тему лямбд глибше, рекомендую мій курс нижче посилання. 🔹Мій телеграм ка...
7. Рефакторимо наш код з Compose
Переглядів 2139 місяців тому
Давайте трохи порефакторимо код, щоб рухатися далі. Тобто реорганізуємо, прибиремо зайве. 🔹Мій телеграм канал. Оновлення підказки: t.me/kravets_coding 🔹Наша телеграм спільнота. Взаємодопомога: t.me/android_razom 🎥 ua-cam.com/play/PL3o5sNxukLFCZ2xN_pHLr5AuAc8BcWit1.html&si=ZhM1k5bwXAkQnKpH 🎥 ua-cam.com/play/PL3o5sNxukLFBJYifmCcHpwXZSql5-OFB0.html&si=1ZUss1U2ajtznc5o 🎥 ua-cam.com/play/PL3o5sNxuk...
6. Column Row | Розташовуємо елементи в стовчик чи в ряд
Переглядів 1229 місяців тому
Column та Row базов елементи Compose. Розташуємо наш тексти в рядок. 🔹Мій телеграм канал. Оновлення підказки: t.me/kravets_coding 🔹Наша телеграм спільнота. Взаємодопомога: t.me/android_razom 🎥 ua-cam.com/play/PL3o5sNxukLFCZ2xN_pHLr5AuAc8BcWit1.html&si=ZhM1k5bwXAkQnKpH 🎥 ua-cam.com/play/PL3o5sNxukLFBJYifmCcHpwXZSql5-OFB0.html&si=1ZUss1U2ajtznc5o 🎥 ua-cam.com/play/PL3o5sNxukLFBGmh0hh6HI4khggWENQ...
X. Як неправильний паралелізм погіршує продуктивність програми | 5 рішень
Переглядів 2239 місяців тому
Паралелізм можна організувати правильно, а можна зробити так, що телефон буде перегріватися, а UI буде глючити. Я розкажу про справжній проблеми з якими я стикався в контекст багатопотоковості, як я їх вирішував. Код рішень теж покажу. Краще щоб ви вже мали хоч якийсь досвід програмування. Інформація стосується не лише мобільної розробки. Хоч я розказую на приклад Kotlin Coroutines. 0:00 Для к...
3 Рекомендації для початківців, щоб засвоювати потоки на практиці поступово
Переглядів 3269 місяців тому
У цьому відео я поділюся своїм досвідом із вивчення багатопотоковост у програмуванні. Я починаю з обговорення "Плавного графа вивчення", методики засвоєння складних концепцій, яка особливо корисна при вивченн багатопотоковості. Дал я пропоную три основн рекомендації, як допоможуть вам плавно засвоїти багатопотоковість з нуля. 0:00 - Про відео. 0:58 - Плавний граф вивчення будь-чого: що це таке?...
2. Багатопотоковість. Проблеми і Рішення. Зона відповідальності програміста
Переглядів 3119 місяців тому
У цьому відео ми зосередимося на вивченн основних Проблем, як можуть виникати у контекст багатопотоковості, та на Потенційних рішеннях, Правилах Принципах, яких варто дотримуватися вам як програмісту - це Ваша зона відповідальності. Бо не на все ви маєте вплив, але на дещо таки маєете. Цей список буде корисним не тільки для навчання зараз, але й у майбутньому, коли ви зіткнетеся з проблемами, ...
1. Багатопотоковість | Процес, Потік, Асинхронність, Паралелізм
Переглядів 7669 місяців тому
1. Багатопотоковість | Процес, Потік, Асинхронність, Паралелізм
Обережно - резервне копіювання | allowBackUp=true
Переглядів 17810 місяців тому
Обережно - резервне копіювання | allowBackUp=true
5. Нове вхідне значення | Другий спосіб запустити рекомпозицію
Переглядів 16910 місяців тому
5. Нове вхідне значення | Другий спосіб запустити рекомпозицію
3.1. Рекомпозиція з допомогою MutableState
Переглядів 28110 місяців тому
3.1. Рекомпозиція з допомогою MutableState
1. Запускаємо проект з Jetpack Compose
Переглядів 49810 місяців тому
1. Запускаємо проект з Jetpack Compose
Віртуальна підтримка - теж підтримка #coding #програмування #програмування #заробіток
Переглядів 14911 місяців тому
Віртуальна підтримка - теж підтримка #coding #програмування #програмування #заробіток
Як прокачати себе як спеціаліста | Книга чи практика | Практика чи обставини
Переглядів 42611 місяців тому
Як прокачати себе як спеціаліста | Книга чи практика | Практика чи обставини
Sealed та Enum | Що коли використовую
Переглядів 29211 місяців тому
Sealed та Enum | Що коли використовую
Sealed class | Різна кількість аргументів
Переглядів 30411 місяців тому
Sealed class | Різна кількість аргументів
Sealed клас | Замість enum | Також два слова про наслідування та поліморфізм
Переглядів 55211 місяців тому
Sealed клас | Замість enum | Також два слова про наслідування та поліморфізм
Enum | Що таке перелічення | Чому недобре використовувати константи для перелічення
Переглядів 82611 місяців тому
Enum | Що таке перелічення | Чому недобре використовувати константи для перелічення
Чому я не здався | Вивчив програмування
Переглядів 1,1 тис.Рік тому
Чому я не здався | Вивчив програмування
GPT переваги для пошуку #coding #android #kotlin #gpt #українською #програмування #заробіток
Переглядів 83Рік тому
GPT переваги для пошуку #coding #android #kotlin #gpt #українською #програмування #заробіток
Не відкриває DOCX | android resolve activity return null | Приклад вирішення проблеми
Переглядів 189Рік тому
Не відкриває DOCX | android resolve activity return null | Приклад вирішення проблеми
Суперовий безкоштовний контент українською в галузі IT - це просто SUPER!! Велика Вам подяка! Підписалися на тел-канал, та вже почали вивчати.
Дякую, дуже цікаво, та зрозуміло 👍
Чи варто братись за котлін Kotlin без знання Java, цікавить саме розробка під андроїд. В деяких вакансіях вказують і знання Java + Kotlin, наскільки реально розробляти додатки без знання java?
Привіт зі Львова , продовжуйте будь ласка. Дякую.
15 годин в день вчив програмування)) Ну-ну))) Увесь час коли не спав) Є взагалі уявлення як працює людський мозок, пам’ять і тд?)
супер, до зустрічі в наступних уроках)
Класний початок )
дякую за гарні приклади та пояснення!
Неймовірно класне відео, все доступно та легко сприймаєтсья. За корисні посилання як android.development ВЕЛИЧЕЗНЕ дякую! Було би круто в кжному відео наприклад вкінці вставляти корисні посилання та додавати їх в опис, або одне відео в місяць з корисними фішками, посиланнями та лайфхаками. Удачі в розвитку проекту. А я іду далі дивитись курс...)
просто величезне ДЯКУЮ!)
Просто мега якісне пояснення. дякую!
Класне, коротке та зрозуміле пояснення без води) дякую
Андрій було би круто створити діскорд канал для початківців в розробці на Android для обміну досвідом та корисними фічами в розробці, бо телеграм не дуже зручний. Відео вийшло як завжи позитивно зрозуміле. Дякую за твій внесок в освітньому процесі)
Дуже класне пояснення, впринципі після Java то легко. Дякую за чудовий урок ;)
It's a cool pitch and affordable
а ось воно що, поміняйте будь ласка порядок в плейлесті) 5 і 4 місцями)
Delta 2 повного заряду вистачає лише на 5 годин. Підключений лише холодник з інверторним мотором, бере близько 125 ват. Що не так і як це виправити?
1)Заряди до 100 розряди от прям до нуля. Хоча б 5 разів, так би мовити " розкачати" 2) обнови прошивку. 3) підключи інший прибор. Який ти впевненеий що він бере наприклад 100 ват. ( Лампочку , або щось подібне).та виміряй. 4) Холодильник постійно всі 5 годин їсть 125? В Дельті 2 батарея 800 ват годин. (Хоча пишуть 1024 и т.д, але э така штука як втрати енергії. Від працюючого інвертора) Тому чесних 800 ват/годин, тому нагрузка яка споживаэ ПОСТІЙНО 125 ват, пропрацюэ 6.5 години. А наприкладі сценарію роботи як у відео , де холод. Виключаеться та включаеться , то помнож на два... Тоб то 13 годин.(Мова йде про звичайну дельта 2 1024 вт.год.) (Того шо на відео дельта 1260 вт.год.)
в кого не працює по кабелю чи wifi -> шукайте "Парамерти розробника" (вклбчіть їх) далі "Отладка по USB"/"Отладка по WiFi", і ставите галочки. В кого самсунг в настройках в пошуку просто напишіть "pair"
Дякую за відеоуроки, контент імба, перехожу з front на android розробку. Мужик випусти курс Udemy по Android-studio, бо там в основому якась дікуха. Я б з задоволоннем придбав би. 🔥🔥🔥🔥
Курс жахливий, не робіть більше без монтажу і сценарію
Раптом хтось забуксував на якійсь задачі, ось мої рішення задач, але в останній використовував Set (зберігає лише унікальні значення), в них я можу десь теж помилитись але наче все працює, fun main(args: Array<String>) { val myNumber = 8 val secondNum = 3 val arrayDouble = arrayOf(1.0, 8.0, 0.5, 12.33) val helloStr = "Привіт!" val arrayWords = arrayOf("лампа", "монітор", "стакан") val arrayCopyWords = arrayOf("лампа", "монітор", "стакан", "монітор") val wordInArray = "монітор" showMultiplyTable(myNumber) multipTwoNumbs(myNumber, secondNum) avrgOfArray(arrayDouble) maxOfArray(arrayDouble) printEvenNumbs() println() reversArray(arrayDouble) println() reversStr(helloStr) findInArray(arrayWords, wordInArray) unicueArray(arrayCopyWords) } /** * Функція повертає масив текстів із унікальними значеннями * */ fun unicueArray(array: Array<String>) { val uniqueItems = array.toSet() val uniqueArr = uniqueItems.toTypedArray() println("Унікальний масив: ${uniqueArr.joinToString()}") } /** * Знайти текст в масиві * */ fun findInArray(array: Array<String>, word: String) { var isArray = false var stringArray = "" for (i in array) { if (i == word) { isArray = true } stringArray += "$i, " } if (isArray) { println("Слово $word є серед слів $stringArray") } else { println("Слово $word немає серед слів $stringArray") } } /** * String навпаки * */ fun reversStr(hello: String) { var helloRevers = "" for (i in hello.indices) { helloRevers += hello[hello.length - i - 1] } println(helloRevers) } /** * Функція повертає масив із числавми тільки навпаки */ fun reversArray(array: Array<Double>) { val copyArray = array.copyOf() for (i in array.indices) { array[i] = copyArray[array.size - i - 1] print("${array[i]} ") } } /** * Відображає непарні (але вони всетаки парні) числа від 1 до 99 * */ fun printEvenNumbs() { for (i in 1..99) { if (i % 2 == 0) { print("$i ") } } } /** * Функція знаходить найбільше число в масиві */ fun maxOfArray(array: Array<Double>) { var maxNumb = array[0] for (i in array) { if (i > maxNumb) { maxNumb = i } } println("Найбільше число в масиві: $maxNumb") } /** * Функція приймає масив, повертає середнє значення з даного масиву */ fun avrgOfArray(array: Array<Double>) { var sum: Double = 0.0 for (i in array) { sum += i } println("Середнє значеня масиву: ${sum / array.size}") } /** * Множить два числа без оператора * * */ fun multipTwoNumbs(firstNum: Int, secondNum: Int) { var sum = 0 var count = secondNum while (count > 0) { sum += firstNum count-- } println("$firstNum x $secondNum = $sum") } fun showMultiplyTable(number: Int) { for (n in 1..10) { val result = number * n println("${number}x${n}=$result") } }
Дуже крутий канал
Як на мене трохи нелогічно, що ми вказали тип значень масиву String, а потім всеодно потрібно задати значення порожніх полів
Отлично но дорого за киловат мощность, у меня дом 7 киловат стоит за 50 тысяч грн а тут 1 за 40😀
дякую за цікавий урок
Посортуй відео у списку відтворення по порядку, бо дуже не зручно дивитись.
7:40 мені здається, що тут трохи є неточність, бо у котліні не можна створювати саме АТРИБУТ КЛАСУ var без значення, а не просто змінну. У котліні можна створювати змінні var, не ініціалізувавши їх.
Дякую за урок, чекаю на урок про деспатчери
Чекаємо з нетерпінням! ;)
Талант розжовування! Тобі б в університеті викладати. Але судячи з того , що курси валют заюзав билизькі до реальності. То відосики 6ти річної давнини. Негарно людей намахувати застарілим контентом )
settingsMap.forEach{pair -> run { println("${pair.key}: ${pair.value}"); } }
Всім привіт, вікаво що моя IDE додала до forEach конструкцію run
Дякую за урок!
До Reset бажано добавити when або if бо якщо при pавантаженні не ввівши число, натиснути Reset то буде краш when { numberStringBuilder.isEmpty() -> { } else -> { val lastIndex = numberStringBuilder.length - 1 numberStringBuilder.deleteCharAt(lastIndex) tvResult.text = numberStringBuilder }
Супер дякую!❤
А я використав binding.apply{} не знаю наскільки це доцільно але все працює. В скобки переніс всі setOnClickListener а замість змінної вписав id кнопки binding.apply { btZero.setOnClickListener { numberStringBuilder.append(0) resultText.text = numberStringBuilder } btOne.setOnClickListener { numberStringBuilder.append(1) resultText.text = numberStringBuilder } . . . }
Застосував binding.apply{} поприкольніше слало в скобки переніс всі setOnClickListener а замість змінної вписав id кнопки binding.apply { btZero.setOnClickListener { numberStringBuilder.append(0) resultText.text = numberStringBuilder } btOne.setOnClickListener { numberStringBuilder.append(1) resultText.text = numberStringBuilder } . . . }
Щось в новій версії вже немає того "+" яким можна замінити команду git add . Можливо кудись переїхав )) А так дякую за урок )
Цікаво
це так класно що просувається український ютуб і тим більше такі теми звязані з наукою в приємній мові
Лайк за Анатoліч ІДЄ ) Я посміявся )
Дякую за відео!! Зробив через ActivityMainBinding класна фішка ну і здається зрозумілішою ніж findViewById binding.btCount.text = "Zbil'shyty na 1" binding.btCount.setOnClickListener { Log.d("TAG","Click") counter += 1 val numberStr = counter.toString() binding.tvCounter.text = numberStr }
Дуже приємно чути і бачити якійсний контент українською! Дякую автору за зусилля і надіюсь буде ще більше також якісного відео матеріалу!
Дякую, просто, пізнавально і легка подача!
Дякую за український контент
Дякую за вашу роботу, шкодую що не знайшов ваш канал раніше.
дякую за вашу роботу! Супєр!"
Є дуже невелика кількість каналів, на кожному відео яких я ставлю 👍 Ваш -- один з них❤🔥
Дякую за курс
Значить в Котліні теж можна так робити, брати функцію та зробити декілька її варіантів з однією назвою але різною кількістю параметрів і в залежності від кількості переданих параметрів вона буде виконувати різні завдання.