Програмиране в твърд режим: предизвикателството

Щракнете, за да прочетете Част 1 Нови устройства

Кликнете, за да прочетете Част 3 Дефиниране на MVP

По-рано писах, за да представя моето текущо състояние на подмяна на устройството. Опитвам се да консолидирам помощните програми на стария си лаптоп и таблета в едно устройство, iPad Pro 12.9. Предизвиквам себе си да се впусна в проект за разработчици, използвайки този iPad като среда за разработка.

Разбира се, ще трябва да използвам хостинг и облачни услуги, за да оживее този проект, но се надявам, че по-голямата част от работата по разработката може да се извърши с iPad. Поне в рамките на разумен диапазон от това, което може да се направи на традиционните операционни системи за персонални компютри.

Хардуерът е заключен. Предишната публикация съдържа два сравнителни резултата за CPU и GPU на моите устройства. Слотът за iPad Pro е идеален, точно под моя работен плот. Да, можех да получа повече в лаптоп. И моите разсъждения зад този скок бяха предимно импулсивни. Наистина обаче Apple сигнализира за намерението си да размие границите между традиционните си компютърни устройства и мобилните си устройства. 2021 г. е и въпреки че един лаптоп може да има много производителност — и платформата на лаптопа наистина изглежда по-модерна от голям стар домашно изграден настолен компютър — чувствам, че мощният таблет е по-добрият швейцарски нож за компютър задачи. Очаквам устройство от това ниво, с псевдоним „Pro“, да се справи със същия обем и типове задачи, които бих изпълнил на лаптоп. Мога да пътувам с това устройство много по-лесно, отколкото с лаптоп. Интерфейсът е много по-подходящ за случайно уеб сърфиране и стрийминг от лаптоп.

Защо разработката да не работи и интерфейсите, които използваме, да бъдат също толкова лесни и небрежни за навигация?

Това е свободно и слабо обосновано мнение, знам. Също така съм наясно, че няма пълна поддръжка за мобилни устройства, когато става въпрос за общи и необходими инструменти за разработка на софтуер. Приливът обаче се променя. GitHub тества своята услуга Codespaces. Екземплярите на бележника са достъпни чрез доставчици на облачни услуги. Интернет връзките са бързи, дори мобилният интернет. Никога не е било по-лесно да се изграждат в облачни услуги.

И така, какви са изискванията на модерен проект за разработка, които са или не са изпълнени от наличните iOS приложения и уеб услуги?

В най-основната си форма кодирането е просто въвеждане на текст и след това запазване на този файл. Може би ще трябва да го компилирате или може би това е скриптов език, който просто трябва да бъде интерпретиран. Понякога е необходима виртуална машина за изпълнение на кода, друг път само браузър.

Мога ли да въвеждам текст и да запазвам файлове на моя iPad?

да...

Мога ли да направя каквото е необходимо с тези файлове, за да ги доведа до точка, в която могат да се считат за програма?

Може би…

Среди за изпълнение, интерпретатори, компилатори и т.н. Всичко това зависи от конкретния език или набори от езици, които избирам да използвам. Предполагам, че е време да реша какъв ще бъде обхватът на този малък експеримент, за да мога да направя някои избори и да разбера дали нещо от това е осъществимо или трябва да започна да спестявам за луксозен M1 max MacBook, който да мъкна наоколо. Ще направя ли традиционна програма, мобилно приложение или цяла система за някаква цел?

Това, което реших е, че за да се придържам към темата „твърд режим“, ще направя игра...

😆

Имам малко случаен опит в това. Но не много. Достатъчно, че дори с перфектната работна среда за разработка и инструменти пак може да не го завърша.

Не просто каква да е игра, а мултиплейър игра...

😆

Една с постоянни и неопределени състояния на играта, която може да поддържа много играчи, които играят наведнъж... О, да, най-лошата идея за някой, който не може да завърши нищо, мини-мултиплейър онлайн игра... RPG? Може би, но мисля повече за RTS в стил арена. Честно казано, нямам представа. Знам, че тези намерения са изключително нелепи и доста клиширани.

Наистина, ще изграждам система - ако някога завърша - която има няколко купчини движещи се части. Предимно клиент за плейъра, уебсайт и „бекенд“. Ще имам нужда от система за удостоверяване, регистриране, балансьори на натоварването, хостинг, клиентска платформа, някакъв набор от бази данни за данни от игрите, някакъв набор от услуги за свързване между играчите и всичко останало, нещо за стартиране на NPC логика (ако има такива), нещо, което да управлява цялостното състояние на света, списъкът продължава.

Архитектурата на микросервизите ще бъде подходяща, мисля. Хостингът чрез една от облачните услуги ще бъде необходим, независимо дали е голям играч или малък магазин, специално пригоден за разработчиците на игри, все още е във въздуха. Мисля си, че клиентът на плейъра вероятно ще трябва да бъде базиран на браузър, тъй като знам, че няма да мога да тествам на това устройство в противен случай (вече правя компромиси).

Нищо от това дори не обхваща дизайна на играта, историята и героите. Най-важното е, че ще ми трябват и активи - визуални и аудио. Всъщност те може да са най-лесни за разработване на iPad. Това може да са последните ми думи.