Как стать автором
Обновить
15
0
Михаил Капелько @kornerr

Разработчик

Отправить сообщение

Введение в архитектурный шаблон «Мрак в Моделях»

Время на прочтение18 мин
Количество просмотров3.1K

В данной статье рассмотрим один из способов работы со сложностью, возникающей в ходе разработки ПО. Рассмотрим принципы SSOT, FRP (Combine), SRP и дойдём до архитектурного шаблона «Мрак в Моделях» (далее MM), являющегося комбинацией этих принципов. Примеры будут для iOS на Swift, но всё описанное, конечно, применимо не только на платформах Apple.


Часть 1. Как я пришёл к описываемому архитектурному шаблону




1.1. Разработка без комплексов, или архитектурный антишаблон «Massive View Controller»


Многие в iOS начинали свой путь с размещения практически всего кода в UIViewController'ах, т.к. любой экран в iOS есть ни что иное, как экземпляр UIViewController. Так куда класть код, если не в этот самый видимый экран? Кнопки-то ведь на экране? Следовательно, и реакции на кнопки должны быть там же. С этого и начнём.


Создадим крошечное приложение, позволяющее начинать звонок двумя способами:


  • ввести номер в поле ввода и нажать на кнопку «Начать звонок»
  • принять входящий звонок как аудио через интерфейс CallKit

Выглядеть оно будет минималистично:


Читать дальше →

О ходе создания игры «Колобок» в июле

Время на прочтение2 мин
Количество просмотров1.9K

В июле с помощью Matter.js реализовал прыжки колобка из-под платформы и подкидывание стрелы.

Что случилось с игрой «Колобок» в июне

Время на прочтение2 мин
Количество просмотров3.6K

В июне сделал набросок собственного инструмента для дальнейшей разработки "Колобка" с помощью HTML, Matter.js и JSON.

О ходе создания игры «Колобок» в мае

Время на прочтение2 мин
Количество просмотров2.1K

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

О ходе создания игры «Колобок» в апреле

Время на прочтение2 мин
Количество просмотров2.2K

На апрель выпал переезд с GDevelop на Phaser, к которому пришлось прибегнуть после опроса в предыдущей мартовской статье, где мы определили приоритеты реализации возможностей, которые стоит добавить в игру:


  • 38.5%: дополнительный способ выбраться как из дома, так и со двора;
  • 26.9%: враги в виде бабульки (дома) и козы-дерезы (во дворе), которые как-либо мешают управлению колобком;
  • 26.9%: диалоги колобка с живыми существами — котом и коровой;
  • 7.7%: сбор звёздочек в труднодоступных местах с последующим неким вознаграждением тех, кто собрал все.

О промежуточных мартовских итогах создания русской народной игры «Колобок»

Время на прочтение2 мин
Количество просмотров2.7K

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

О ходе создания русской народной игры «Колобок» в феврале

Время на прочтение2 мин
Количество просмотров3.7K

Создание "Колобка" началось для меня 13-го февраля, когда я решил по совету коллеги глянуть инструмент GDevelop. Через неделю я уже опубликовал статью, в которой призывал всех неравнодушных присоединиться.


Рассказываю, что произошло с проектом за прошедшие две недели.

Приглашаю к созданию русской народной игры «Колобок»

Время на прочтение2 мин
Количество просмотров6.5K

Ранее я описывал свои занятия по программированию с ребятами лет двенадцати. Пандемия в прошлом году сделала проведение подобных очных занятий невозможным, поэтому в текущем году я всё-таки надеюсь на возобновление очного формата. В этом же году я решил повысить планку интерактивности и перейти от игры, где нужно выбирать шары одного цвета, к игре, где можно бегать и прыгать (но не грабить караваны). На видео результат, которого удалось добиться на текущий момент. И вот на этом этапе я хочу узнать, что, на ваш взгляд, следует добавить в создаваемую игру...

How I create browser applications inside browsers

Время на прочтение3 мин
Количество просмотров1.7K

GitJS


In 2013 Canonical tried to crowdfund Ubuntu Edge smartphone. Its main feature could be the ability to use the smartphone as a full-fledged PС. Unfortunatly, the crowdfunding campaign did not accumulate enough money, so a dream of having a universal device remained to be the dream.


I've been searching for universality, too, on the software side, not the hardware one. Today I can confidently say I found the necessary combination: Git and JavaScript.


As you know, I have already described the benefits of browser applications (nCKOB static site generator) and the benefits of using Git instead of yet another back-end with API (GitBudget to track personal spendings). Once GitBudget was out, I spent the remaining 2020 to build a system allowing one to create browser applications right inside browsers. GitJS is the name of that system.

Read more →

Как я создаю приложения для браузера прямо в браузере

Время на прочтение3 мин
Количество просмотров4.6K

GitJS


В 2013 году компания Canonical пыталась собрать средства на выпуск смартфона Ubuntu Edge. Особенностью продукта должна была стать возможность преобразовывать смартфон в полноценный ПК. Увы, необходимую сумму собрать не удалось, поэтому мечта создать универсальное устройство так и осталась мечтой.


Со своей стороны я давно искал универсальность со стороны программного обеспечения, не железа. Сегодня с уверенностью могу сказать, что нашёл необходимую комбинацию: Git и JavaScript.


Ранее я уже описывал как преимущества браузерных приложений на примере генератора статических сайтов nCKOB, так и преимущества замены очередного сервера с АПИ на Git для общения с внешним миром на примере приложения учёта трат ГитБюджет. После выпуска ГитБюджета оставшуюся часть 2020 года я потратил на систему, позволяющую создавать браузерные приложения прямо в браузере. Эту систему я назвал GitJS.

Читать дальше →

Why I keep track of spendings in a personal app made with Git+JS

Время на прочтение4 мин
Количество просмотров1.5K

Hi, folks, let me share my experience of creating an application to keep track of my spendings. Specifically, let me do it by answering the following questions:


  1. Why keep track of spendings in an application?
  2. Why did I create the application as a personal project?
  3. Why does the project use Git+JS?

1. Why keep track of spendings in an application?


I, like many people out there, wanted to become rich and successful. To become rich, one is often advised to run a personal budget, that's what I started to do several years ago. I'd like to point out that running my personal budget hasn't made me rich and successful, and I increased income simply by moving to Moscow.

Почему я сделал личный проект учёта трат на Git+JS

Время на прочтение5 мин
Количество просмотров11K

Здравствуйте, господа, в этой статье я поделюсь опытом создания приложения учёта трат, в частности отвечу на следующие вопросы:


  1. Зачем мне приложение учёта трат?
  2. Почему это личный проект?
  3. Почему проект на Git+JS?

1. Зачем мне приложение учёта трат?


Как и многие другие люди я давно хотел стать богатым и практиковать успешный успех. Одной из рекомендаций в таких случаях часто выступает предложение вести собственный бюджет, чем я и занялся несколько лет назад. Скажу сразу, что ведение бюджета не сделало меня богатым и успешным, а своё материальное положение я улучшил обычным переездом в Москву.

Teaching folks to program 2019, a.k.a. in the search of an ideal program: Sequence

Время на прочтение8 мин
Количество просмотров748

MUROM


Hi, my name is Michael Kapelko. I'm a professional software developer. I'm fond of developing games and teaching folks to program.


Preface


Autumn 2019 was the third time I participated as one of the teachers in the course to teach 10-15-year-old folks to program. The course took place from mid. September to mid. December. Each Saturday, we were studying from 10 AM to 12 PM. More details about the structure of each class and the game itself can be found in the 2018 article.


I have the following goals for conducting such courses:


  • create a convenient tool to allow the creation of simple games, the tool interested folks of 10 years old or older can master;
  • create a program to teach programming, the program interested folks of 10 years old or older can use themselves to create simple games.
Read more →

Обучение программированию 2019, или в поисках идеальной программы: Последовательность

Время на прочтение8 мин
Количество просмотров6K

МУРОМ


Здравствуйте, меня зовут Михаил Капелько. Занимаюсь профессиональной разработкой ПО. Увлекаюсь разработкой игр и обучением программированию.


Предисловие


Осенью 2019-го я в третий раз участвовал в курсе обучения ребят 10-15 лет программированию в качестве одного из преподавателей. Наши курсы проходили с середины сентября по середину декабря. Каждое занятие было в субботу с 10:00 до 12:00. Подробнее о структуре каждого урока и деталях создаваемой на курсе игры можно узнать из статьи за 2018-й год.


Лично для себя я выделил две основные цели, к которым иду с помощью курсов:


  • создать удобный инструмент для создания простейших игр, понятный заинтересованным людям в возрасте от 10 лет;
  • создать программу обучения программированию, позволяющая заинтересованным людям в возрасте от 10 лет самостоятельно делать простейшие игры.
Читать дальше →

On the way to durable applications with PSKOV static site generator as an example

Время на прочтение4 мин
Количество просмотров1.4K

Pskov's veche


Hi, my name is Michael Kapelko. I have been developing software professionally for more than 10 years. I develop games and game development tools in my spare time.


This article describes my first durable application for desktop PCs: PSKOV static site generator.


Durability


A durable application is an application that functions without a single change on operating systems released in years 2010-2030. In other words, a durable application has backward compatibility of 10 years and has the stability to run for 10 years. Actually, PSKOV runs even under Windows 2000, so PSKOV has backward compatibility of 19 years.

Read more →

На пути к долговечным приложениям на примере генератора статических сайтов ПСКОВ

Время на прочтение4 мин
Количество просмотров3.9K

Псковское вече


Здравствуйте, меня зовут Михаил Капелько. Занимаюсь профессиональной разработкой ПО более 10 лет, в свободное время разрабатываю игры и средства для их создания.


В этой статье я расскажу о своём первом долговечном приложении для настольных ПК — генераторе статических сайтов ПСКОВ.


Долговечность


Под долговечным приложением я понимаю такое приложение, которое работает без единого изменения на операционных системах, выпущенных в период 2010-2030 годов. Иными словами, долговечное приложение обладает 10-летней обратной совместимостью и 10-летней прочностью. Впрочем, ПСКОВ работает даже на Windows 2000, так что у него 19-летняя обратная совместимость.

Читать дальше →

Teaching kids to program

Время на прочтение6 мин
Количество просмотров2.4K

Hi. My name is Michael Kapelko. I've been developing software professionally for more than 10 years. Recent years were dedicated to iOS. I develop games and game development tools in my spare time.


Overview


Today I want to share my experience of teaching kids to program. I'm going to discuss the following topics:


  • organization of the learning process
  • learning plan
  • memory game
  • development tools
  • lessons
  • results and plans

Обучение детей программированию

Время на прочтение6 мин
Количество просмотров17K

Здравствуйте. Меня зовут Михаил Капелько. Занимаюсь профессиональной разработкой ПО более 10 лет. Из них последние годы связаны с iOS. В свободное время разрабатываю игры и средства для их создания.


Обзор


Сегодня хочу рассказать о своём опыте обучения детей программированию, в частности мы рассмотрим:


  • организацию процесса обучения
  • программу обучения
  • игру на память
  • инструмент программирования
  • уроки
  • результаты и планы

Несовершенные технологии

Время на прочтение5 мин
Количество просмотров10K
Здравствуйте. Я Михаил Капелько, программист команды Opensource Game Studio. Я хочу рассказать вам, что мы узнали при приближении к выпуску OGS Mahjong 1.0, нашему последнему релизу пасьянса Маджонг (но не последнему в серии Маджонг). Эта статья продолжает предыдущую: Долгий путь к Mahjong 0.7

Год назад в мае 2011-го мы выпустили OGS Mahjong 0.7, он дался нам с большим трудом. В этом году в сентябре 2012-го мы выпустили OGS Mahjong 1.0. Во время разработки 1.0 мы хотели распрастранить нашу игру на всех дистрибутивах Linux, а также Mac OS X. К сожалению, нам это не удалось, т.к. OGS Mahjong использует OGRE и OIS.
Читать дальше →

OGS Mahjong добрался до версии 1.0!

Время на прочтение1 мин
Количество просмотров12K
Всем привет. Спешу сообщить, что мы с Иваном Корыстиным kaisd на днях выпустили OGS Mahjong 1.0! Делали его мы целых 2 года, несмотря ни на какие заверения недоброжелателей, что:
  • Маджонг — это уныло
  • Маджонг сделать может даже школьник
  • да на современных движках такую игру запилить — 2 недели максимум
  • 3D никого не удивишь, у меня в айфоне игры круче
  • Маджонг никому не нужен, я пойду лучше в Mass Effect поиграю
  • я видел 100500 таких же наивных мальцов, которые хотели создать свою игру/ММОРПГ/<что угодно>
  • я сам пытался делать игру, ничего не получилось, не получится и у тебя
  • игра УГ, ибо тормозит безбожно, зато халва под вайном летает

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность