Pull to refresh
14
0
Михаил Капелько @kornerr

Разработчик

Send message

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

Reading time18 min
Views3K

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


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




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


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


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


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

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


Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments4

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

Reading time2 min
Views2.1K

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


  • 38.5%: дополнительный способ выбраться как из дома, так и со двора;
  • 26.9%: враги в виде бабульки (дома) и козы-дерезы (во дворе), которые как-либо мешают управлению колобком;
  • 26.9%: диалоги колобка с живыми существами — котом и коровой;
  • 7.7%: сбор звёздочек в труднодоступных местах с последующим неким вознаграждением тех, кто собрал все.
Total votes 9: ↑8 and ↓1+7
Comments5

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

Reading time2 min
Views2.7K

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

Total votes 8: ↑7 and ↓1+6
Comments33

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

Reading time2 min
Views3.6K

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


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

Total votes 28: ↑21 and ↓7+14
Comments27

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

Reading time2 min
Views6.3K

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

Total votes 17: ↑14 and ↓3+11
Comments108

How I create browser applications inside browsers

Reading time3 min
Views1.6K

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 →
Rating0
Comments0

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

Reading time3 min
Views4.4K

GitJS


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


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


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

Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments11

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

Reading time4 min
Views1.4K

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.

Rating0
Comments0

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

Reading time5 min
Views11K

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


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

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


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

Total votes 13: ↑12 and ↓1+11
Comments59

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

Reading time8 min
Views711

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 →
Rating0
Comments0

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

Reading time8 min
Views6K

МУРОМ


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


Предисловие


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


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


  • создать удобный инструмент для создания простейших игр, понятный заинтересованным людям в возрасте от 10 лет;
  • создать программу обучения программированию, позволяющая заинтересованным людям в возрасте от 10 лет самостоятельно делать простейшие игры.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments23

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

Reading time4 min
Views1.3K

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 →
Total votes 11: ↑9 and ↓2+7
Comments0

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

Reading time4 min
Views3.9K

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


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


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


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


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

Читать дальше →
Total votes 23: ↑16 and ↓7+9
Comments107

Teaching kids to program

Reading time6 min
Views2.3K

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
Total votes 20: ↑19 and ↓1+18
Comments2

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

Reading time6 min
Views17K

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


Обзор


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


  • организацию процесса обучения
  • программу обучения
  • игру на память
  • инструмент программирования
  • уроки
  • результаты и планы
Total votes 28: ↑25 and ↓3+22
Comments32

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

Reading time5 min
Views10K
Здравствуйте. Я Михаил Капелько, программист команды 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.
Читать дальше →
Total votes 13: ↑8 and ↓5+3
Comments11

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

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

Читать дальше →
Total votes 45: ↑40 and ↓5+35
Comments24

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity