Как написать backend? Свой сервер на Котлин. Ktor. Полный курс

Поділитися
Вставка
  • Опубліковано 8 лип 2024
  • Как написать backend?
    Всем привет, давно хотел сделать полный курс по разработке приложения с нуля. Начал естественно с сервера, так как без сервера делать приложение довольно трудно :) Многие кто делает приложения заходят в тупик, когда им нужно написать какой-то свой небольшой серверочек для приложения.
    В этом видео мы по шагам дойдем от ТЗ приложения до полностью своего сервера на Котлин, используя технологию Ktor
    Тайм-коды:
    00:00:00 - Введение
    00:01:56 - Обзор проекта
    00:06:39 - Декомпозиция проекта
    00:17:43 - Создание сервера и первый запрос
    00:25:40 - Сериализация
    00:28:29 - Логин
    00:43:10 - Логин запросы
    00:48:33 - База данных
    01:22:43 - Таблицы турнира и игры
    01:49:02 - Heroku
    02:06:46 - Тесты
    02:16:41 - Заключительная часть
    Полезные ссылки:
    Дизайн приложения - www.figma.com/file/qcnLDibghk...
    Генератор проектов Ktor - start.ktor.io/
    Heroku - www.heroku.com/
    Ссылка на репозиторий - github.com/AlexGladkov/playzo...
    Если вам понравилось видео, то поддержать канал и получить доступ к эксклюзивному контенту можно подписавшись на Boosty:
    =================================================
    Поддержать канал на Boosty - boosty.to/mobiledev
    =================================================
    Полезные статьи из мира мобильной разработки:
    Teletype - teletype.in/@alexgladkov
    Мобильный разработчик в других соц. сетях:
    ================================
    Телеграм - t.me/mobiledevnews
    ВК - mdeveloper
    Дзен - dzen.ru/mobiledeveloper
    ================================
    Если ты прочитал это - напиши коммент! Тест на внимательность :D

КОМЕНТАРІ • 204

  • @daniyar2718
    @daniyar2718 Рік тому +9

    Бесплатные альтернативы heroku - railway, render, mogenius.
    Залил на эти 3 сервисы, сижу и мониторю в каком лучше остаться...

    • @beckaksel8783
      @beckaksel8783 Рік тому

      А что насчёт Docker'а?

    • @danilastepanov108
      @danilastepanov108 Рік тому +1

      Как успехи?

    • @daniyar2718
      @daniyar2718 Рік тому +2

      @@danilastepanov108 railway бесплатное время чуть позже середины месяца заканчивается, надо карточку добавить чтоб дальше работало, пишут что снимут в конце месяца только с учётом потраченных ресурсов, не нравится мне это, хотя при корректной установки может и дешевле выйти... Крон работы нету кажется...
      Render - сервер выключается если бездействие, но если $7 заплатить тогда все норм должно работать, ну или какой-нибудь сервис в background запустить чтоб не засыпал. Крон от $1.
      Mogenius - работает чётко, можно на бесплатной версий запустить 2 сервера, проблем не наблюдаю, платная версия начинается от $12. Крон работы не сделали пока, но в планах у них...

    • @daniyar2718
      @daniyar2718 Рік тому +2

      Update: mogenius с 31 марта 2023 бесплатный план будет закрыт

    • @gnarlyfrays
      @gnarlyfrays Рік тому

      Если смотреть платные варианты, не прощё hetzner за 5 евро взять? Или эти сервисы прям сильно удобнее?

  • @godliestous4658
    @godliestous4658 11 місяців тому

    Прекрасное видео! Очень помогло быстро разобраться с бэком на kotlin.

  • @user-fg3wl4xu9d
    @user-fg3wl4xu9d Рік тому

    очень сильно надо ещё! Спасибо!

  • @sergeyly5438
    @sergeyly5438 2 роки тому +2

    Алексей, огромное спасибо за это видео

  • @insideggg
    @insideggg 4 місяці тому

    лучшый курс что я только видел, спасибо за труд

  • @MacDog108
    @MacDog108 2 роки тому +13

    Давно хотел попробовать сделать свой бэк на котлине, а тут такой видос подъехал, спасибо большое!

  • @LinaMazaeva
    @LinaMazaeva 8 місяців тому +2

    Спасибо от дизайнера-проектировщика за правильное описание роли дизайнера.)

  • @Anadol777
    @Anadol777 Місяць тому

    Офигенно, это прям то, что мне нужно было
    спасибо!

  • @aokruan
    @aokruan 2 роки тому +7

    Спасибо за видео. Формат хороший. Видео понравилось. Ktor, довольно, интересный. Несколько моментов: не REST api, хотелось бы OAuth2, и с БД какие-то проблемы были (weight, а не size; string, а не double). Хранить токен админа на сервере - это мощно :). Огромное желание увидеть ролики по Android для этого бэка и для iOS.

  • @user-sd8qz2vc5e
    @user-sd8qz2vc5e 2 роки тому +45

    Формат очень понравился, спасибо за твой труд!

  • @zolomed
    @zolomed 3 місяці тому

    Легенда, спасибо

  • @sorry6019
    @sorry6019 Рік тому

    Все очень круто и классно ровно до хероку, запутался с закрашенными полями

  • @ermilovnik
    @ermilovnik 2 роки тому +1

    Спасибо Алексей!

  • @hestonic5114
    @hestonic5114 Рік тому +4

    Очень понравилось видео. Хотелось бы вторую часть! посмотреть как с приложением связать

    • @d1agnozdi860
      @d1agnozdi860 Рік тому +1

      Очень хочется! Mobile Developer, услышь нас!

  • @maksonic_official
    @maksonic_official 2 роки тому

    🔥однозначно лайк!

  • @And_Alex
    @And_Alex 2 роки тому

    Супер 🔥

  • @user-cm1om1oo3p
    @user-cm1om1oo3p Рік тому

    Можно смотреть такие большие видео: снимаешь на пять часов режешь по часу и выкладываешь в отдельный плейлист.

  • @aiklklivlind9451
    @aiklklivlind9451 2 роки тому +1

    Alex спасибо за Jun starter pac)))).Формат, а особенно тема огнище!!!

  • @user-jo4pu2tg3w
    @user-jo4pu2tg3w 2 роки тому +6

    Круто! Я как раз сейчас мучаюсь с поиском инфы про бэк на ktor-e. Лайк не глядя.

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +1

      Надеюсь было полезно )

    • @beckaksel8783
      @beckaksel8783 Рік тому

      Привет, получилось найти что-то полезное? Про базы данных, например

  • @karjicohd1m0nd
    @karjicohd1m0nd 2 роки тому +1

    как раз начал смотреть в сторону ktor для петов
    а тут еще от тебя курс вышел))

  • @user-gw4yd3rt8e
    @user-gw4yd3rt8e 10 місяців тому

    Очень понравилось видео

  • @nokia_n-gage
    @nokia_n-gage 2 роки тому

    Спасибо!

  • @alekseyblekot119
    @alekseyblekot119 Рік тому

    Благодаря Вашему видосу успешно залил свой мини сервак)
    Респект! Братан, ваще огонь, давай, давай! Больше контента)💥💥🤪

    • @beckaksel8783
      @beckaksel8783 Рік тому

      Привет, а ты делал сервер на Heroku или использовал что-то другое?

    • @alekseyblekot119
      @alekseyblekot119 Рік тому

      @@beckaksel8783 привет! Сделал на Heroku, потестил и удалил. У них уже нет бесплатного тарифа.
      Буду сейчас пробовать Hetzner (5$/month) - это просто хостинг Линукс сервера. Буду заливать docker с Ktor туда. И докер БД какой-то.
      Я смотрел, есть хорошие аналоги Heroku: Railway, Render с бесплатными тарифами. Но пока склоняюсь к hardcore варианту - самому разобраться с сервером)

    • @beckaksel8783
      @beckaksel8783 Рік тому

      @@alekseyblekot119 Спасибо за ответ) Я так понимаю, что ты попал еще на бесплатный тариф у Heroku? Сам вот сейчас хочу сделать сервер и выбираю бесплатные аналоги. Как вариант, рассматриваю Back4app и Amvera, но надо глянуть и на твой список)

    • @alekseyblekot119
      @alekseyblekot119 Рік тому +1

      @@beckaksel8783 не, там уже был платный. За неделю, вроде ничего не сняли с меня. Я удалил там приложение свое. О, я на твой список тоже гляну))

  • @alexzdorovennov4035
    @alexzdorovennov4035 Рік тому

    Видос 1000/10 спасибос

  • @gera.v.v
    @gera.v.v Рік тому +1

    Лайк. Пользуй автоформатирование Ctrl+alt+l, и optimize import ctral+alt+shift+l. А то часто ошибочные импорты вручную удаляешь. Хотя уверен и так все знаешь. Крутые видосы. Кайфую. После 2 лет на java смотрю Котлин. Легко заходит. Роутинги и валидация реально круто сделаны. Не то что на java

  • @heroachilles
    @heroachilles 2 роки тому

    Спасибо

  • @nikitamityushov7270
    @nikitamityushov7270 2 роки тому

    Давай, круто

  • @MaxDax-zn2ic
    @MaxDax-zn2ic 2 роки тому +6

    Очень ждал видео по бэкенду на котлине, спасибо!

  • @ruzoompartygmail4273
    @ruzoompartygmail4273 2 роки тому +1

    Спасибо ! Уникальный контент!

  • @dreamer6228751
    @dreamer6228751 2 роки тому +15

    Братан ,на 11 часов в самый раз)). Главное больше всего реального. Больше борьбы с граддле)). Я уже не радуюсь обновлениям в студии)). Поиск полнотекстный сейчас вроде через elastic накручивают.

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +2

      Ну другие пишут наоборот типа нафига мне смотреть как кто-то мучается с градлом )

  • @beckaksel8783
    @beckaksel8783 Рік тому +3

    Спасибо, очень понравилось. Но хотелось бы перевыпуск части про Heroku, потому что они убрали бесплатный тариф, блин))

  • @awenn2015
    @awenn2015 Рік тому

    41:19 только недавно начал втягиваться в Котлин, прикольный пример кстати, я делал через find { it.param == param } потом уже проверял в найденном contains, попробую как ты сделать ))

  • @PaulWide
    @PaulWide 2 роки тому

    спасибо

  • @JalexyDev
    @JalexyDev Рік тому +3

    1.43:
    -"Щас будет куча скучно работы, так что я сделаю магическое выключение-включение экрана и вы увидите результат"
    *Хопа!*
    ....половина проекта переписано, а нам рассказывают про текущий файл...
    (я как бы с ведущим писал, чтобы все попробовать, а в результате пришлось лезть в исходники и разбираться чо каво. Тоже самое касается и установку pgAdmin 4. Оказалось надо устанавливать сервер, а потом вместе с ним эту прогу)
    Это то с чего я подгорал в этом видео. Но само видео очень интересное и как раз то что я искал. Спасибо, Алексей!

    • @MobileDeveloper
      @MobileDeveloper  Рік тому +1

      У производства видео есть некоторые особенности. Например, в данном случае я писал все последовательно, но к сожалению одна из видеозаписей крупных похерилась
      Поэтому пришлось восстанавливать шаги

    • @JalexyDev
      @JalexyDev Рік тому

      @@MobileDeveloper ну бывает )
      В общем начиная с этого момента я потерял нить и дальше просто смотрел наматывая на ус. Но не потрогав хероку сложно представить сколько с ней надо мучиться, чтобы ее завести.
      Ещё раз спасибо за видео. Пока писал код, кайфанул. Многие вещи прояснились. Особенно удивил сам ктор с его генерацией проектов - просто пушка!

    • @MobileDeveloper
      @MobileDeveloper  Рік тому

      Да ктор очень мощная штука согласен )

  • @user-eo9gb1qq7n
    @user-eo9gb1qq7n 2 роки тому

    Алексей спасибо, очень крутое видео, продолжай плиз в том же духе

  • @maksonic_official
    @maksonic_official 2 роки тому

    Вооотт это тема! Большое спасибо Алексей! Я как-то хотел написать сервер на кторе себе, но ничего не понимал, потыкат потыкал и забил... А это видео очень полезно! Думаю что заново начну бэк писать, щас на Firestore проектик пишу, но 100% переведу на свой бэк, вопрос времени)))

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +1

      Мне очень понравилось) Правда в современных условиях видимо нужно отдельное видео как залить бэк не в хероку а куда-нить типа облака мейл ру)

    • @maksonic_official
      @maksonic_official 2 роки тому

      @@MobileDeveloper хаха да это точно)

  • @MrKizup
    @MrKizup 2 роки тому +1

    О, супер, спасибо большое, как раз нужно что-то быстренько сделать. Выбор был либо использовать python, flask например, но очень хотелось на родном kotlin)

    • @MrKizup
      @MrKizup 2 роки тому +2

      Ещё бы кратенько как собрать все в докер контейнер)

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +1

      Надо будет подумать да над этим)

  • @YoLaLucky
    @YoLaLucky 2 роки тому

    Ееее🔥🔥🔥годно

  • @neuronn8584
    @neuronn8584 2 роки тому +2

    Топ, отложил для пет проекта, спасибо. Хочется в ти-шейп

  • @user-ug9vh3rf1o
    @user-ug9vh3rf1o 2 роки тому

    Увидил доту, поставил лайк

  • @evgeniyshevtsov6167
    @evgeniyshevtsov6167 Рік тому +2

    Начал бодро понятно. В конце все скомкал и выплюнул - типа ну как то так ! Как бы Вам понравилось если бы Вам так машину в сервисе чинили - "тут мы сделали и тут, а вот тут держите детали сами пойме куда и как". Вот поэтому запад нас и "делает" в сервисе.

    • @JesusAviator
      @JesusAviator 8 місяців тому

      В сервисе платно, а это ролик в интернете

  • @kimstik
    @kimstik 2 роки тому

    Оооо, как раз недавно скучал, хотел написать бэк к пет проекту

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому

      Мне бы так скучать (

    • @kimstik
      @kimstik 2 роки тому

      @@MobileDeveloper Когда ты джун+ и рабочие задачи не капают это грустно, приходится искать ещё одно место чтобы развиваться (ну и пет проекты писать)

  • @IvanIvanov-wo9tv
    @IvanIvanov-wo9tv 2 роки тому

    Спасибо огромное! Очень понравилось, Я впервые в эту тему зашел, и первая надпись получилась, высветилась надпись от сервера в постмане, хотя я сервер по этому видео только что создал скачал, загрузил в андроид студио, запустил сервак ток надпись поменял на свою! Запустил в браузере, смотрю блин НОЛЬ, думаю какого блин Х ниче не работает, смотрю заного, замечаю какую то прогу постман, скачал, зарегался, что то понажимал, в общем запустил постман и в запросе GET получил свою изменённую надпись в консоли...
    теперь буду дальше смотреть, пока досмотрел до 25 минутыи блин я уже программист!!!!!!!!

  • @awenn2015
    @awenn2015 Рік тому

    19:04 очень крутая подача и сама идея сама по себе интересная но блин, шрифты бы чутка по более а то с телефона не видно ничего)

  • @jagorkushnir2079
    @jagorkushnir2079 2 роки тому

    Огромное спасибо, жаль, что у меня только один лайк

  • @beeline09
    @beeline09 2 роки тому

    Года два-три назад писал свой сервер. Смотрю видео как дежавю)) Тогда это видео мне помогло бы ускориться. Хотя... После андроид разработки на Котлин, пишешь веб сервер на ктор как что-то своё родное, не мучаешься, как раньше, со всякими пхп и прочим архаизмом.
    Токены делал на JWT. Это очень удобная штука. БД - Maria. Все летает на относительно простом железе (ай5-8400, 32ГБ) даже в пиковые нагрузки около 15-20 соединений в секунду.

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +1

      Спасибо) поизучаю )

    • @misterex99
      @misterex99 Рік тому

      У вас собственный сервер дома?

    • @beeline09
      @beeline09 Рік тому

      @@misterex99 Ну можно и так сказать. На NAS все развернуть можно. Лишь бы был докер)

    • @misterex99
      @misterex99 Рік тому

      @@beeline09 я хочу арендовать vps 2 гига, 2 ядра, 45гиг ssd, 3 терабайт трафика за 500р в месяц, он для тестов с ktor подойдёт, как вы думаете?

    • @beeline09
      @beeline09 Рік тому

      @@misterex99 если можно запустить контейнер для Java приложений, то почему бы и нет. Tomcat или что-то подобное должен поддерживать

  • @nsznk2836
    @nsznk2836 Рік тому +1

    Оч круто, спасибо за видео! Жаль только, что Heroku теперь отключил бесплатный план. Еще и из России ушел(

  • @dancef2
    @dancef2 Рік тому +1

    Имхо надо продвигать на Котлине микросервисные приложения для конкуренции с Go, так как Котлин быстрее и производительнее чем GO - а это наверное для многих большая неожиданность.

  • @andreyshadrin1658
    @andreyshadrin1658 Рік тому

    Подписался, ждем продолжение как связать с приложением. )

    • @MobileDeveloper
      @MobileDeveloper  Рік тому +1

      Оно уже лежит частично на канале, в плейлисте по кмм

    • @artlinestudio6735
      @artlinestudio6735 Рік тому

      @@MobileDeveloper Большое спасибо. Вы гениальный учитель. Пенсию получу 18 числа, поддержу канал. Спасибо!

    • @MobileDeveloper
      @MobileDeveloper  Рік тому

      Спасибо )) Можно купить курс целиком в заглавном видео из того плейлиста

    • @artlinestudio6735
      @artlinestudio6735 Рік тому

      @@MobileDeveloper ой, а можно ткнуть носом, а то в моем возрасте прям сложно в пк. А детей дома нет. Это мое хобби. Что бы на старости сохранить ум, да время убивать. Учусь. Всю жизнь учился на заводе, теперь вот другой станок.

    • @MobileDeveloper
      @MobileDeveloper  Рік тому

      Это очень классно, что вы этим занимаетесь. Вот, если вы из России, то оно доступно вот здесь
      boosty.to/mobiledev/posts/942f2091-f2fd-4462-8ed4-e7f03efe645a?share=post_link

  • @Kocoukot
    @Kocoukot 2 роки тому +1

    Видео отличное, спасибо! Очень помогло решить вопрос с точки зрения сервера с пет-проектом. Единственное, никак не удается настроить связь с БД Heroku, и в видео об этом не до конца рассказано, к сожалению, в части конфигов. Не посоветуете, где можно подглядеть или кто может подсказать в итоге в части настроек?

  • @rewolta7774
    @rewolta7774 2 роки тому +3

    круто. искал материал по Ktor. На русском вообще ни чего нет. Спасибо что сделал мини курс) но появились вопросы.
    1) Exposed не поддерживает миграцию? При каждой реструктуризации бд нам нужно в ручную создавать таблицы, добавлять колонки?
    2) будут ли еще видосы на данную тему?
    3) Ktor работает на корутинах, было бы не плохо по больше про это рассказать)

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому

      Привет ) exposed это просто сахар поверх базы, он позволяет легче работать с ней. ORM (object relation map) одним словом.
      Ещё видео думаю будут но позже
      Про корковидные много всякого на канале

    • @unpub2
      @unpub2 2 роки тому

      делал бэкэнд на ктор, в качестве орм выбрал ktorm , рекомендую, очень логичная и понятная. для обоих информацию брал с офф сайта, на английском, но все понятно.

    • @VoroninSergey
      @VoroninSergey 2 роки тому

      Exposed поддерживает создание таблиц с нуля. Миграцию вроде тоже, но не проверял

  • @stanislavvetrovskii8465
    @stanislavvetrovskii8465 2 роки тому

    добрый день! Спасибо за видео, просто пушка, коротко и понятно! А как теперь это залить куда-то?

  • @awenn2015
    @awenn2015 Рік тому

    48:56 я когда более менее бэк учил для этого сохранял все данные в json типо база была ))

  • @dmitriyobidin6049
    @dmitriyobidin6049 2 роки тому +1

    12:14 Вполне себе полнотекстовый поиск может быть отдельной сущностью на уровне сервера, если используются условные ElasticSearch, Solr или Sphinx

  • @andrewm762
    @andrewm762 2 роки тому +1

    Видео по своему хороши на 6 часов или 11 часов

  • @user-rr1tw3ge8c
    @user-rr1tw3ge8c Рік тому

    на 1.38.50 добавил nullable тип. А у меня в задаче поле с nullable [списком] текстовых полей. Не могу в интернете найти информацию. Поля с Array действительно не поддерживается библиотекой? Как обойти проблему?

  • @zal_vine
    @zal_vine Рік тому

    видео очень красивое и четкое. видео очень поможет разработчикам Android. но у меня есть один вопрос? как создавать фоновые изображения, видео, музыку и подобные файлы? Я не смог найти никакой информации об этом в Интернете.

  • @unicorn-thirteen
    @unicorn-thirteen 3 місяці тому +1

    Таким образом можно и стать full. Конечно хочу что бы все было свое back особенно. Спасибо за видео. Ещё хотел спросить можно же сделать back на kotlin а сам приложуху на flutter тут же работа чисто запросы на базу то есть на kotlin back?

  • @user-hc6ph7nz8v
    @user-hc6ph7nz8v 2 місяці тому

    Спасибо большое, давно хотел освоить бэк на котлине) подскажите, а где можно найти видео с андроидом (где этот юэк уже в андроиде применяется)?

  • @tspa77
    @tspa77 2 роки тому

    Я прочитал это и пишу коммент! Тест на внимательность пройден :D

  • @luci.morningstar
    @luci.morningstar 2 роки тому +2

    id в базе логичнее конечно сделать сразу uuid и генерацию переложить на БД

    • @VoroninSergey
      @VoroninSergey 2 роки тому

      Если используется exposed генерацию на бы не переложить. Под капотом он сам генерит uuid

  • @Qwazar3559
    @Qwazar3559 2 роки тому

    Как же давно я ждал эту тему! Ура!

  • @vitmih380
    @vitmih380 2 роки тому

    по релейшинам в экспозед будет видео?

  • @Polurival
    @Polurival 2 роки тому

    у меня postman выдает Error: socket hang up
    Пробовал другой порт, переключать некоторые настройки в постмане и выставил таймаут ответа - ничего не помогает

  • @awenn2015
    @awenn2015 Рік тому

    1:10:20 я хоть и плохо знаком с концепциями бэкенда но уже понимаю что прокидывать call в контроллер такая себе идея))

    • @MobileDeveloper
      @MobileDeveloper  Рік тому

      Потом тоже это понял да

    • @bro_chenzox
      @bro_chenzox Рік тому +2

      Я посмотрел видео о том, как создать свой сервер на Kotlin с помощью Ktor. В комментариях я увидел следующее замечание: "Я хоть и плохо знаком с концепциями бэкенда, но уже понимаю, что прокидывать call в контроллер - такая себе идея))." То есть, `прокидывать` call в контроллер нельзя. Почему и как нужно делать правильно?"
      Во-первых, что такое `call`? `Call` - это запрос, который приходит на сервер от клиента. Когда клиент отправляет запрос на сервер, сервер должен знать, как обрабатывать этот запрос. Здесь на помощь приходят контроллеры.
      Контроллеры - это классы, которые обрабатывают запросы от клиента и возвращают ответы. Контроллеры получают доступ к запросу через параметры функции.
      Например, если у вас есть запрос GET `/users`, который возвращает список пользователей, вы можете создать контроллер следующим образом:
      ```
      get("/users") {
      val users = getUsersFromDatabase() // Получаем список пользователей из базы данных
      call.respond(users) // Отправляем список пользователей в ответ на запрос
      }
      ```
      Теперь давайте вернемся к вопросу о том, почему нельзя прокидывать `call` в контроллер. Причина в том, что `call` - это объект, который содержит информацию о запросе, который пришел на сервер. Если вы будете передавать `call` в контроллер, то это может привести к тому, что вы начнете обрабатывать запросы вне контроллера. Это может привести к путанице и сложностям в разработке.
      Так как `call` содержит всю необходимую информацию о запросе, вы можете получить доступ к этой информации непосредственно внутри контроллера. Не нужно передавать его как параметр.
      Например, чтобы получить параметры запроса, вы можете использовать следующий код:
      ```
      get("/users/{id}") {
      val id = call.parameters["id"] // Получаем значение параметра `id` из запроса
      val user = getUserById(id) // Получаем пользователя из базы данных по его `id`
      call.respond(user) // Отправляем пользователя в ответ на запрос
      }
      ```
      Таким образом вам не нужно прокидывать `call` в контроллеры. Вместо этого вы можете получать доступ к `call` внутри контроллеров, используя функции-расширения Ktor.
      Эксперты, оцените ответ ИИ пожалуйста.

  • @Stambulo
    @Stambulo 10 місяців тому

    По Android и по iOS видео уже сняты ? Дайте ссылки плиз.

  • @annaermilova5475
    @annaermilova5475 2 роки тому

    а продолжение будет по ktor?

  • @bro_chenzox
    @bro_chenzox Рік тому

    В быстром доступе папка Бабушка Галя)🍩🍪🍰

  • @user-not_defined
    @user-not_defined 2 роки тому

    сейчас апи поменялось и install(plugin = ContentNegotiation ) выглядит по другому( а документации нет(

  • @Mecenatt
    @Mecenatt 2 роки тому

    Я даже не джун , но хостинг себе давно сделал . Аренда сервака это около 15 тысяч рублей в месяц + много допов .
    Хостинг + домен это самое оно . Менее 1000 руб в год . Простенькие скрипты php + mysql позволят в полной мере использовать базы данных . Андроид студио при подключении к хостингу будет давать ошибку . Надо покупать сертификат . На нормальных хостингах он в подарок . Без него много геморроя и я хотел бы посмотреть его решения (они есть) .

    • @tequilaonelove
      @tequilaonelove 2 роки тому +1

      Необязательно арендовать целую тачку (сервер) . Достаточно будет VPS решения. Условные 150-200 рублей/месяц, за 1 ядро/1ГБ ОЗУ/20ГБ SDD . Домен покупаем где нравится/хотим., если есть возможность, то можно брать сразу же у хостера серваков и проблем будет еще меньше. Сертификат бесплатный можно потом на впске уже сделать за пару минут, заюзав бесплатный Let's Encrypt.

    • @Mecenatt
      @Mecenatt 2 роки тому

      @@tequilaonelove точно

  • @sku796
    @sku796 8 місяців тому

    1:52:25 Автодеплой видимо не работает потому, что стоит чекбокс "Wait for CI before deploy"

  • @andrew3937
    @andrew3937 2 роки тому +1

    мне бы зашло и видео на 11 часов))

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +1

      :D Может когда-то и сниму)

  • @leonidivankin9004
    @leonidivankin9004 5 місяців тому

    Как сейчас сервер без хироку опубликовать?

  • @gera.v.v
    @gera.v.v Рік тому

    Да, вопросик. Это бэковая часть приложухи с играми. На канале есть еще 3 части для multi. А если multi понравится, то можно купить за 5, потом 10 тыс полный курс мульти. Так?

    • @MobileDeveloper
      @MobileDeveloper  Рік тому

      Да все так ) Я скоро выложу 4 часть ну и так далее, но там еще штук 30 частей так что )

  • @leonidivankin9004
    @leonidivankin9004 9 місяців тому

    Понравился видос. Жаль только, что не прокатило сделать его до конца, т.к. heroku залочен. Очень жду видоса с Ktor+Render.
    Может такой уже есть, но я не нашёл. Если есть у кого ссылка, то скиньте, пож

  • @elron2010
    @elron2010 2 роки тому

    По твоему ТЗ в бэкенде в body должен прийти json, потом ты его десериализуешь, но как обрабатывать случаи когда кто-то передал пустой body ? Канечно же можно саму десериализацию обернуть в try..catch, а как это сделать без try..catch ? Как заранее проверить что body не пустой ?

    • @elron2010
      @elron2010 2 роки тому

      @@Valentin-zx8wr а если злоумышленник через curl или postman будет прощупывать сервак на наличие уязвимостей ?

    • @elron2010
      @elron2010 2 роки тому

      @@Valentin-zx8wr а если злоумышленник через curl или postman будет прощупывать сервак на наличие уязвимостей ?

  • @user-hu8uw3fr6m
    @user-hu8uw3fr6m Рік тому

    Начал смотреть и ... пошел изучать почтовика.

    • @MobileDeveloper
      @MobileDeveloper  Рік тому

      Почтовика?

    • @user-hu8uw3fr6m
      @user-hu8uw3fr6m Рік тому

      @@MobileDeveloper ну да. Почтальон - это как то не то.

    • @user-hu8uw3fr6m
      @user-hu8uw3fr6m Рік тому

      Ну, вот и почтовик позади. Как то сходу нарвался на прекрасный урок, замутил автотест апишки какой-то, прикольно.
      Погнали дальше.

  • @user-gy9mm8ic6k
    @user-gy9mm8ic6k Рік тому

    Стишок про "и стало их 10" на 13 минуте - это случайно не стишок про 12 негритят?

  • @tobehonestwith
    @tobehonestwith 2 роки тому

    41:00 - ах вот откуда дыры в приложениях берутся :)))

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому

      А потом персональные данные утекают! )

  • @user-cruiser-300
    @user-cruiser-300 Місяць тому

    смотрю 07-06-2024 г. - сериализация уже по дефолту устанавливается при создании ktor-сервера

  • @ruslansokolov7443
    @ruslansokolov7443 2 роки тому

    Ktor крутая штука, но мне всё же больше нравится писать бэк на пхпшном Ларавеле

  • @divansimdrive
    @divansimdrive Рік тому

    Установите jvm, скажите котлину тот передаст jave в ней есть библиотека, jvm запустит😊

  • @maxsimpleapps
    @maxsimpleapps 2 роки тому

    Можешь нубасам в бд объяснить, почему ты для типа данных столбцов берёшь character varying вместо text? Это какой-то осознанный выбор?

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +1

      Если честно, то меня так еще в универе научили, поэтому просто уже на автомате делаю, но если вкратце разница в том что text занимает фикс место (65535 символов), а varchar столько, сколько укажешь, поэтому это своего рода оптимизация

  • @DJTooZoFF
    @DJTooZoFF Рік тому

    Создавать таблицы руками - это сильно. Миграции использовать религия не позволила?

  • @gera.v.v
    @gera.v.v Рік тому +1

    Если все с первого раза запустилось, значит что то тут не так. 😂😂

  • @VtShabanoff
    @VtShabanoff Рік тому

    а есть курс для чайников с самого начала?

    • @MobileDeveloper
      @MobileDeveloper  Рік тому

      С самого начала это откуда )

  • @k.barabass
    @k.barabass Рік тому

    Heroku не хотят регистрировать аккаунт, так как я из России, пишут, что не ведут бизнес в этой стране. Вот так

  • @slartus
    @slartus 2 роки тому

    еще и в игры успеваешь играть.. сколько часов в твоих сутках???

  • @aiislive
    @aiislive 5 місяців тому

    Что только люди не придумывают, лишь бы не использовать PHP. )))

  • @robertiskhakov7820
    @robertiskhakov7820 Рік тому

    почему не firebase использовали?)

    • @MobileDeveloper
      @MobileDeveloper  Рік тому +2

      Так в этом смысл ) видео о том как сделать сервер не через файрбейз. Причём я во вступлении об этом говорю

    • @robertiskhakov7820
      @robertiskhakov7820 Рік тому

      @@MobileDeveloper спасибо)

  • @syoritohatsuki
    @syoritohatsuki 2 роки тому

    Я думал ток мне хочется постоянно писать response

  • @xxx---xxx---xxx
    @xxx---xxx---xxx Рік тому

    Заебца

  • @VoroninSergey
    @VoroninSergey 2 роки тому

    Нет никакого смысла в данных случаях использовать try / catch. Если хочешь проверить есть ли пользователь - проверь количество возвращённых элементов в мапе. Если боишься креша соединения - нет смысла. Бэк не упадёт. Отвалится только коннект и увидишь это сразу в логах

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому

      А какой тайм код?

    • @VoroninSergey
      @VoroninSergey 2 роки тому

      @@MobileDeveloper 1.03.04. Exposed возвращает тебе мапу, а ты насильно вытаскиваешь их неё первый элемент, хотя лучше проверить количество или firstOrNull использовать (Фунация single используется из extension kotlin collection, а не exposed)

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому

      Буду знать, спасибо )

  • @veksaaa
    @veksaaa 2 роки тому

    Добрый день) как залететь в IT, завод уже задолбал ((( дайте фидбэк с помощью...

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому

      А зачем оно тебе?

    • @veksaaa
      @veksaaa Рік тому

      @@MobileDeveloper дело в том, что я по образованию инженер технолог по металлобработке, работал на многих производствах разных отраслей, начиная со слесаря, заканчивая начальником цеха...пром отрасль не развивается, расти некуда, везде ставленники-родственники, потенциал свой никак не раскрыть ,ЗП находится в замороженном состоянии...в IT я вижу бесконечность в развитии, как в профессиональном так и в уровне дохода, где в первую очередь все зависит от тебя, от твоих способностей.

    • @veksaaa
      @veksaaa Рік тому

      @@MobileDeveloper я тебя понял, спасибо

    • @MobileDeveloper
      @MobileDeveloper  Рік тому +1

      Я вообще-то не сижу целый день в ожидании пока коммент напишут. Проблема понятная. Задача сложная. Никакого пути кроме как учиться нет, займёт это от года до двух. Так что вот, прикидывай

    • @eugene8863
      @eugene8863 Рік тому +1

      Я вторую вышку за 3 года закончил по ускоренному курсу. Несколько учебных проектов + пет проект. Изучал js реакт. Залетел на фронтенд на изи.

  • @slartus
    @slartus 2 роки тому

    Heroku:
    Closed for new business
    We do not accept sign-ups from your country.

    • @MobileDeveloper
      @MobileDeveloper  2 роки тому +2

      Впн в помощь как говорится ) но видео я писал до всех этих событий :(

  • @sfsd9507
    @sfsd9507 Рік тому +1

    на 1,45,** начал дергаться правый глаз... мало того что все перескочил, еще и показываешь в обратном порядке. т,е, надо посмотреть, а потом переписывать отматывая назад, так еще и правки начинаются, в этом безобразии.. АААа...мама

  • @EanutiyDolbayyyb
    @EanutiyDolbayyyb Рік тому

    Да это писец )))
    Называется на коленке лиш бы кликалось.

  • @divansimdrive
    @divansimdrive Рік тому

    Самый дешёвый и простой бэк на php, можно ещё node js. Хотя для мобилок то конечно если ты сидишь на java-kotlin, зачем ещё что то кроме jvm

  • @eliyahuvaissfeld7300
    @eliyahuvaissfeld7300 Рік тому

    D

  • @haxidenti6001
    @haxidenti6001 Місяць тому

    1:27 - Что за бред. Сервер для 70 экранов. Какое отношение имеет сервер к размеру экрана, и какая расскладка элементов на экране впринципе. Сервер - это хранилище данных, и контроллеры с сервисами. Какой размер например "кнопки логин" или влазит она в логин меню, или нет, слева она, или справа, это для сервера не должно быть проблемой

    • @MobileDeveloper
      @MobileDeveloper  Місяць тому

      Вы находитесь на канале для мобильных разработчиков
      У мобильных разработчиков часто сложность проекта измеряется в экранах
      Чем больше экранов, тем больше функционала у приложения, тем больше апишек
      Чем больше апишек тем сложнее сервер
      У больших приложений часто большая аудитория
      Большая аудитория - высокая нагрузка на сервер
      Так понятнее я надеюсь?