iOS 6 in 2021

De eerste video op mijn YouTube kanaal ging over het dualbooten van mijn iPad 2. Ik ging in die video namelijk met coolbooter mijn iPad 2 downgraden naar iOS 7. Maar mijn iPad heeft niet lang iOS 7 gedraaid hoor. Ik ben namelijk 3 dagen na het maken van die video naar iOS 6 geswitcht. 

Ik wil je in deze blogpost vertellen hoe mijn ervaringen met iOS 6 in 2020 en 2021 tot nu toe zijn geweest. Spoiler: vrij goed. iOS 6 zelf is vrijwel onbruikbaar in 2020 of 2021. Maar met wat tweaks werd het toch mogelijk. Zelfs iMessage en Facetime werken!

Het eerste wat ik heb gedaan is het jailbreaken van iOS 6. Dit was vrij simpel, want dat was gewoon een optie in Coolbooter. Daarna heb ik wat tweaks geïnstalleerd vanuit Cydia. 

Een daarvan is AppSync Unified. Daarmee verwijder je de restrictie van Apple om .ipa files te installeren. Als je AppSync hebt gedownload en geïnstalleerd, kan je naar mtmdev.org gaan. Dat is een website waar ze oude iOS apps archiveren. Je kan dan bovenin op "webapp" klikken. Er wordt dan een scherm geopend waaruit je oude apps die niet meer in de AppStore staan kan installeren.

Over de AppStore gesproken. Als je apps probeert te installeren krijg je de melding "This app is incompatible". Dit is veroorzaakt door een bug in iOS waarbij iOS eerst checkt voor moderen features zoals 64-bit en bluethoot voor het installeren. Daar kan iOS 6 niet mee omgaan omdat die dingen toen nog niet bestonden. Om dit op te lossen kan je de tweak Checkmate, Store! installeren. Deze tweak houd de AppStore voor de gek en zorgt ervoor dat je alsnog oude versies (die wel degelijk compatible zijn) van apps kan downloaden.

Verder is IPA installer ook een handige tweak. Je kan daarmee je eigen .ipa files installeren. Ik heb hiermee bijvoorbeeld Minecraft op mijn iPad gezet.

Als je YouTube wil kijken, of Google apps gebruikt is het handig om de volgende tweaks te gebruiken: TubeFixer en GSignInFix 

En als je Discord gebruikt, heb je misschien gezien dat dat niet beschikbaar is voor iOS 6. Er is gelukkig iemand in r/LegacyJailbreak die een discord client genaamd Discord Classic voor oude iOS versies heeft gemaakt.  Dus yee! Er zit geen support voor welke vorm van multimedia dan ook in, maar hé, je kan chatten toch?

En dat is ongeveer alles om de iPad weer redelijk functioneel te maken.

Er zijn verder wel een paar dingen die je gewoon echt mist in iOS 6: mail en websites. De mail app functioneert gewoon helemaal niet meer. Je kan geen mails openen of versturen. Safari is een ander verhaal. Het internet werkt namelijk gewoon, maar de WebKit versie van Safari is sterk verouderd. Daardoor worden websites (vooral menu's) niet meer correct weergegeven. Maar dat is echt het enige.

Ik hoop dat je deze post interessant vond.

-Robin


Mijn eerste (goede) game!

Ik heb de afgelopen weken erg hard gewerkt aan een game, en die is nu in een staat dat ik er tevreden mee ben. De game heet Sticks and Rocks en het is een 2d exploration game met een topdown camera. Dat betekent dat je het karakter van bovenaf ziet. Ook heeft de game random gegenereerd "destructible" terrein. Das eigenlijk gewoon een coole manier om te zeggen: je kan net als in het echt de wereld om je heen helemaal vernielen :)

De game is gemaakt met Javascript, HTML en CSS. Dat zijn de talen waarmee ik ook websites maak. Je vraagt je misschien af: hoe kan je met webdevelopment games maken? Vrij simpel. Voor de player movement en camera gebruik ik een set css regels. Daarmee verschuif ik de map op basis van de coords van de player met css achter de player langs. Verder gebruik ik JS als basis. Daarin is de gameloop geschreven en worden input, geluid en menu's geregeld. 

Als je hier meer over wil zien raad ik je aan naar de singleplayer branch van NinjaDO (een andere game die ik heb gemaakt) te kijken. Dat is een heel simpele versie van NinjaDO waarin ik ook css, html en javascript gebruik.

Dit is ook de eerste keer dat ik pixel art heb gemaakt. Pixel art is een manier van tekenen waarbij je alleen maar met vierkantjes (=pixels) werkt. Het mooie van pixel art is dat het makkelijk te maken is, en het kleine bestanden blijven. Hieronder zie je een screenshot van de game.

Onderin het scherm zie je je inventory. Er zijn 2 types items in de game: hout en steen. Je kan ze verzamelen door bomen en rotsen te slaan met je hand (uhh, niet echt realistisch, ik weet het...)

Verder heb ik het hele systeem met health en damage al af, maar ik heb de tegenstanders/monsters nog niet gemaakt. Ik moet daarvoor namelijk AI maken voor die tegenstanders, en dat lijkt me nogal moeilijk. Als je het health systeem in actie wil zien kan je in de Javascript console dit invoeren:

player.hurt = true

Wat ik ook nog wil maken is infinite terrain. Nu wordt er een vierkant van (ik denk) 10x10 tiles gegenereerd, maar dat wordt al snel saai. Het probleem is dat als ik meer tiles ga laden, zeg maar iets van 100x100, de game verschrikkelijk gaat laggen als het terrain moet worden gerendert (op het moment dat de map laadt, de player iets breekt of ergens tegenaan loopt)

De oplossing hiervoor is waarschijnlijk het laden in chunks. Chunks zijn (net als in Minecraft) stukken van 10x10 tiles (oke, in Minecraft is het 16x16, maar je snapt het idee). Zodra je uit een chunk loopt, wordt de volgende gegenereerd. De oude wordt dan opgeslagen in een savefile, en zodra je terug loopt, wordt die weer geladen. Hierdoor blijven je wijzigingen behouden (want er is destructible terrain)

Dus dat is de staat van de game momenteel, en mijn plannen voor het spel. Je kan een demo spelen op mijn net aangemaakte itch.io profiel, die je hier kan vinden: robijntje.itch.io

Laat dan gelijk even in de comments (hier of op itch.io) weten wat je er van vond.

- Robin


PS: voordat ik de vraag krijg waarom ik op itch.io de username Robijntje heb, dat mijn bijnaam die mijn vrienden met hebben gegeven. Ik gebruik die bijnaam wel op meer plekken (zoals reddit bijvoorbeeld)


WebDev ToolKit: tools voor web- en gamedevelopment

Ik ben begonnen met het maken van een set tools voor dingen die ik vaak gebruik bij het maken van websites en games. Zo moet ik vaak weten welke Javascript KeyCodes bij welke toets hoort, of ik moet bijvoorbeeld een kleur 25% lichter / donkerder maken. Ook moet ik weleens een kleur van hex naar rgb veranderen.

Dit zijn de tools die ik tot nu toe heb. 

In de toekomst zal ik waarschijnlijk tools toevoegen als ik ze nodig heb.
Het leek me leuk om dit even te delen. Misschien heeft een van mijn lezers er wel wat aan :)

- Robin


Atom: een crossplatform code-editor

Atom is een cross-platform code-editor gebouwd met Chromium en Node.js

Ik heb de laatste tijd gewerkt in Atom. En ik moet zeggen dat het me wel bevalt. Ik blijf zelf in vscode, want ik heb nog geen editor gevonden die beter werkt dan vscode, maar Atom is zeker erg goed!

Atom alleen is een vrij minimalistische code-editor, maar je kan hem uitbreiden met extensies "packages", en themes. Je kan bijvoorbeeld de kleur van de syntax highligthing aanpassen. Maar niet alleen dat, vrijwel elk aspect van Atom kan worden aangepast. Je kan Atom precies er zo uit laten zien en laten werke zoals jij wil.

Atom heeft ook een coole functie (die ik alleen niet echt gebruik aangezien ik solo werk) genaamd teletype. Je kan dan tegelijk met anderen in hetzelfde document werken, net als in bijvoorbeeld Google Docs. Ook heeft Atom erg goede Git intergratie. Je kan direct vanuit de editor je Git repo's beheren.

Kortom, Atom is een prima code-editor!
Als je nog een code-editor zoekt, kan ik Atom zeker aanraden.

-Robin


ThinkChat: mijn nieuwe chatapp

Ik heb de laatste paar dagen erg hard gewerkt aan een nieuw project: ThinkChat

ThinkChat is een simpele chatapp die gebruik maakt van socket.io en Node.js. Er zijn meerdere rooms, en je hoeft alleen maar een nickname in te vullen om te kunnen chatten.

Verder heb ik nog wat leuke dingen toegevoegd. Iedereen krijgt bijvoorbeeld een 4-cijferige "pin" of "tag" achter hun nickname. Hierdoor zijn alle nicknames uniek, en kunnen er bijvoorbeeld meerdere Robins in de chat zitten. Ook wordt er voor elke naam een random kleur gegenereed (net als in whatsapp), waardoor je verschillende mensen snel kan herkennen. Ook leuk: je nickname wordt automatisch opgeslagen in localStorage, zodat je volgende keer je als je wil chatten je nickname geeneens hoeft in te vullen. Daarnaast kan je de app ook als PWA (Progressive Web App) installeren op zowel iOS als Android.

Dus hoe werkt het? Als je de app opent moet je eerst verbinden met een server (alleen de eerste keer, daarna verbind de app automatisch met die server). Je kan lokaal een server hosten, of bijvoorbeeld een VPS gebruiken. Als je bent verbonden met de server kies je een nickname, en krijg je het chat scherm te zien. Dit is heel simpel: onderaan een tekstbalk en bovenaan het channel / de room waar je inzit. Je kan bovenin ook zien hoeveel mensen er online zijn. Je zit standaard in het general channel, maar door op de channelnaam te klikken krijg je een menu om een ander channel te openen. Op grotere schermen (zoals landscape tablet en laptop) zie je de sidebar automatisch al.

Je kan het project hier vinden: https://chat.geheimesite.nl/

 - Robin