Vk Cipher: de geschiedenis van de applicatie

Goedemiddag allemaal, mijn naam is Georgy, en zoals je misschien al geraden hebt, zal dit artikel je vertellen hoe de Vk Cipher-applicatie is gemaakt om VKontakte-correspondentie te versleutelen.

Idee

Waar komen de ideeën voor de app vandaan? Sommigen komen bij me op tijdens het reizen met het openbaar vervoer, anderen – bij het gebruik van andere applicaties, en weer anderen – bij het zoeken naar analogen voor een ander besturingssysteem en de vaste overtuiging dat ze het beter kunnen doen.

Geen van deze opties werkt voor mijn situatie. Het feit is dat ik weinig studentenervaring had met het schrijven van applicaties, omdat ik dit proces erg leuk vond (en nog steeds leuk vind): iets uit het niets creëren, geschreven regels code omzetten in iets “levends” en werkend (ik denk dat de makers van de app het zullen begrijpen mij). Dus ik studeerde af aan de universiteit, kreeg een baan en ontdekte dat ik genoeg vrije tijd had om mijn wens om te creëren te vervullen, die in de loop der jaren niet is verdwenen.

  

Het begon allemaal met een idee (ik heb het nooit tot leven gebracht, dus ik zal het niet beschrijven), waarvoor het gebruik van de bekende VkApi nodig was. Ik heb nooit met hem gewerkt, dus de kennismaking duurde lang.

Mijn eerste overwinning was het oplossen van het probleem met autorisatie, omdat het voorbeeld van VK-activiteit weigerde voor mij te werken (als alles de eerste keer voor je werkte, gefeliciteerd, je bent geen malafide programmeur), maar typ ik ben alles-ik kon het uitvoeren. . Uiteraard waren de meeste methoden in de lijst (https://vk.com/dev/methods) niet opgenomen in de Android API. Dus ik beheerste de details van verzoeken en reacties, opende een lijst met vrienden en hun foto’s (dit zijn 2 verzoeken op rij). Dit was mijn tweede kleine overwinning! Hier kreeg ik het idee om een ​​kleine messenger te maken, maar niet een eenvoudige (waarom een ​​al perfect werkend deel van de VK-applicatie eruit halen?), Maar een versleuteld bericht. Van het vorige idee heb ik af moeten zien, maar daar heb ik nu helemaal geen spijt van.

Implementatie

Zoals ik al zei, er zijn niet veel werkmethoden in de api, dus het was niet mogelijk om de goedkope dialogen te tonen. Ik moest de bijbehorende klassen toevoegen, vertrouwend op voorbeelden voor andere vragen. Het was niet zo moeilijk, de vraag was precies op tijd. Naar analogie moest ik alles doen voor de geschiedenis van de correspondentie. Vanwege de eigenaardigheden van de antwoorden was ik genoodzaakt dialogen en gesprekken te scheiden, omdat de daaropvolgende verwerking te verschillend was. Daarom bevatte de initiële navigatieoptie slechts 3 elementen: dialogen, vrienden en gesprekken.

Het versturen van berichten moest ook zelfstandig worden uitgevoerd en op een gegeven moment 2,5 week na het begin van het werk (doordeweeks zat ik 2-4 uur op de app, in het weekend had ik genoeg om het zonder te doen) kon ik het eerste bericht verzenden ” test “. Goed gevoel!

Alles tonen wat in het bericht komt, was misschien wel het moeilijkst, en dat allemaal vanwege het vreselijke woord “bijlagen” … Tot dat moment dacht ik er niet aan hoeveel verschillende inhoud mensen via VK verzenden! Er zijn andere berichten, berichten en afbeeldingen/audio/video/links/documenten/stickers/cadeaus. De helft hiervan ontbreekt in de standaard API. Voor de eerste twee moest ik recursieve methoden gebruiken om inhoud te extraheren, bij de rest was het veel gemakkelijker. Voor de release heb ik de berichtenweergave ongeveer 5 keer herschreven.

En ergens halverwege september van dit jaar kwam ik op het punt waar mijn app alles kon weergeven, maar dood was vanwege een gebrek aan updateservices. Ik kwam dit ook niet eerder tegen, maar had het snel onder de knie en implementeerde het in het project, waarna ik het constant moderniseerde om telefoonbronnen en internetverkeer van gebruikers te besparen.

Daarna heb ik een tabblad met instellingen toegevoegd, waarin het mogelijk is om meldingen uit te schakelen (sommige zijn vervelend) en een wachtwoord in te stellen (en dit is voor speciaal gereserveerde gebruikers). Daarnaast werden deze opties vergezeld door thema’s (moest ook een beetje mijn hoofd breken), de mogelijkheid om offline te blijven en ongelezen berichten achter te laten na het bekijken ervan. Navigatie omvat ook de functies “vrienden uitnodigen” en “VK verlaten”.

Laten we verder gaan met het hoofdidee: berichtversleuteling. Om dit te doen, heb ik het pakket org.apache.commons gebruikt, dat voor elke correspondentie 2 sleutels gebruikt (de eerste om uw berichten te coderen en ze te decoderen voor u en de beller, de tweede voor soortgelijke acties door uw beller). Daarom zal hetzelfde woord in verschillende correspondentie er anders uitzien. Even later leerde ik hoe ik audio- en videobijlagen kon versleutelen, en uiteindelijk foto’s. Versleutelde berichten in VK worden weergegeven als een reeks inconsistente tekens, in de geest van “gaQOCDp1h7d2kdlEHm5Q3g ==”.

Na langdurig testen en oplossen van fouten, het aanschaffen van een publicatie-account op GooglePlay (allemaal $ 25), werd de app op 4 november uitgebracht.

Moeilijkheden

Het waren er veel, dus ik zal niet bij elk ervan uitweiden, maar ik zal een lijst maken:
– weinig ervaring met de ontwikkeling van een soortgelijk project;
– VkApi, wat lang duurde om te voltooien;
– bijgevoegde bestanden;
– emoji, het zijn ieders favoriete emoticons (met dank aan deze jongens voor hun werk – https://github.com/rockerhieu/emojicon);
– thema’s ontwerpen (als je zoiets deed, zul je het begrijpen);
– tijd (het is altijd kort);
– VK zelf, die om persoonlijke redenen weigerde reclame te maken voor ons product (gegevensverlies);
– financiële planning en financiën zelf (let op dit punt voordat u de aanvraag publiceert, anders bent u verzekerd van een trage start).

conclusie

Uiteindelijk zou ik willen zeggen dat er oorspronkelijk een betaalde versie was gepland, waarin het mogelijk zou zijn om bijlagen te versleutelen, maar dergelijke applicaties gaan extreem snel kapot en worden verspreid op “zwarte” markten, waar ze het hoogste aantal zullen hebben van downloads (vooral gezien hoe “gemakkelijk” onze mensen scheiden met geld). Daarom werd besloten om gebruikers zoveel mogelijk inhoud te geven als ik kon implementeren, zodat mijn eigen hebzucht het hele project niet zou verpesten.

Op “Vk Cipher” kostte het me 2,5 maanden werk en 110 schriftelijke lessen, die waarmee ik VkApi niet meegerekend had. Dit is verreweg het grootste project waar ik ooit aan heb gewerkt (ik weet dat deze cijfers voor jou misschien belachelijk klinken, maar voor mij is het geen geringe prestatie). Ik heb veel geleerd, maar ik ben niet van plan om daar te stoppen.

Ik wil mijn speciale dank uitspreken aan de ontwerper die met mij heeft samengewerkt voor haar advies, ideeën en hulp. We hebben de lay-out 3 keer volledig opnieuw ontworpen en er zijn geen kleine wijzigingen. En het was allemaal gebaseerd op puur enthousiasme. Bedankt voor uw aandacht en gelukkige versleuteling!

Sollicitatie: Vk-cijferOntwikkelaar: SM Solutions GroupCategorie: sociaalVersie: 1.10Prijs: Het is gratisdownloaden: google play

0 Shares:
You May Also Like