Vom Web über Banken bis zur iOS-Entwicklung: Die persönliche Erfahrung des Apiqa-Programmierers

Das Apiqa-Team befasst sich mit der Produktentwicklung für einen bestimmten Wohnungssektor. Es ist nicht einfach, erfahrene Entwickler in Jekaterinburg zu finden - große IT-Unternehmen suchen hier nach ihnen, viele Kandidaten ziehen in die Hauptstadt oder verlassen das Land, und die Fernzusammenarbeit passt derzeit nicht zu uns. Wir bauen Mitarbeiter im Unternehmen aus, treffen sie und versuchen, komfortable Arbeitsbedingungen zu schaffen. Einer unserer Webentwickler hat sich letztes Jahr entschlossen, sich an der Programmierung für iOS zu versuchen. Wir haben ihm dabei geholfen, diesen Übergang reibungslos zu gestalten. Jetzt ist er gleichzeitig im Web und in der mobilen Entwicklung tätig. Und jetzt ist er bereit, seine Geschichte in der ersten Person zu teilen. Willkommen bei Katze.


Wer ich bin


Hallo Habr! Ich bin Sasha Kalinin, Entwicklerin bei Apiqa. Ich habe es immer gemocht, Websites zu schreiben, Computer zusammenzubauen und komplizierte technische Dinge zu verstehen, aber auf Drängen meiner Eltern erhielt ich eine wirtschaftliche Ausbildung und arbeitete im Bankensektor.



2015 begann er ein Programmierstudium und erhielt ein Praktikum bei UrZPI (Ural Software Products Plant), das sich später mit der interaktiven Agentur Everything Is Clear zusammenschloss. Apiqa erschien. Also tauchte ich in die Welt der Webentwicklung ein. Letztes Jahr wollte ich mich an der Weite von iOS versuchen, und das Unternehmen besuchte mich.


Start: Webprogrammierung


UrZPI war an der Entwicklung von Websites beteiligt: ​​„Golden Apple“, „Liga der Wohnungsbau- und Versorgungsunternehmen“, eine Schmuckmarke, Schönheitssalons und andere. Wir haben ein Großprojekt Digital Pathology durchgeführt - eine Plattform für die Erforschung von Krebs. Parallel zu meiner Hauptaufgabe war ich Mentor an zwei Online-Schulen: Loftschool und HTML Academy.


Im Jahr 2018 wurde PIK Comfort, die größte Verwaltungsgesellschaft in Russland, zum Ankerkunden von Apiqa, wodurch die Spezialisierung festgelegt wurde, und wir begannen, uns mit der Produktentwicklung im Bereich Wohnen und kommunale Dienstleistungen zu befassen.



Im Mai letzten Jahres hatten wir eine Nachfrage nach mobilen Anwendungen, und native Entwickler kamen zum Unternehmen. Zu diesem Zeitpunkt hatte ich das Internet satt und wollte mich in einem Mobiltelefon versuchen. Da ich ein großer Fan von Apple bin, habe ich beschlossen, für iOS zu schreiben.


Eintauchen in die mobile Welt


Am ersten Tag bat ich unseren iOS-Entwickler, mir zu sagen, wo ich anfangen soll. Er erwies sich als reaktionsschnell und spielte die Rolle meines Mentors, der in verschiedenen Phasen der Ausbildung half. Gegen Herbst begann ich Bücher zu lesen: „Schnell. Grundlagen der Entwicklung von Anwendungen für iOS und macOS “(4. Ausgabe) von Vasily Usov und„ Swift 3. Entwicklung von Anwendungen in der Xcode-Umgebung für iPhone und iPad mit dem iOS SDK “(3. Ausgabe) Molly Maskri. Sechs Monate lang las ich, erledigte Aufgaben, schrieb etwas zur gleichen Zeit, erhielt Bewerbungsideen von einem Mentor, um Fähigkeiten zu pumpen.



Ich mochte Swift - es stellte sich als recht einfach heraus und ähnelte TypeScript in der Syntax, auf der ich das Web schreibe. Die Entwicklungstools für Apple-Plattformen sind komplizierter - es gibt viel Erbe aus der Zeit von Objective-C, einer alten und unpraktischen System-API. Ich las das zweite Buch mit einem Knarren.


Die erste Pull-Anfrage schlug fehl und zum ersten Mal wollte ich alles fallen lassen, aber ich tat es nicht. Und der Prozess stand in ungefähr sechs Monaten an: Jetzt schreibe ich für das Web und für iOS.


Wir verteilen aktuelle Aufgaben. Ich mache gerne etwas Ungewöhnliches, das für einen Webentwickler unzugänglich ist - zum Beispiel 3D Touch, aber die Animationen sind noch nicht zugänglich. Ich habe kein Designgefühl. Das Animieren einer Benutzeroberfläche im Web ist natürlich einfacher - dort ist der Code verständlicher, es gibt keine komplizierten Probleme.


Mobile Entwicklung und das Web: Was ist der Unterschied?


Im Web wird das gesamte Bild mithilfe von Code erstellt. Sie können es lesen und sich das Endprodukt vorstellen. In Xcode ist dies eine IDE für iOS-Entwickler. Es gibt den Interface Builder - ein Tool, mit dem Sie über die grafische Oberfläche setzen können, indem Sie den Cursor mit dem Cursor ziehen - das heißt, Sie müssen keinen Code für den visuellen Teil schreiben.



Es klingt cool, funktioniert aber sehr instabil - es ist entweder fehlerhaft, friert dann ein und bricht dann. Manchmal treten Konflikte zwischen dem nativen Code und dem Interface Builder auf - viele Fehler fallen in die Konsole, die Anwendung selbst kann abstürzen, alles kann zur Hölle gehen.


Was zur Auswahl: Web oder Mobile?


Die Entscheidung liegt bei Ihnen. Sie müssen verstehen, dass sie eine grundlegend andere Marktsituation haben. Das Web ist eine kostenlose Plattform, und die Gesetzgeber des Mobiltelefons sind Unternehmen, die iOS und Android besitzen - sie entscheiden, wo sie entwickeln und welche Tools Entwickler verwenden sollen. Bei der Programmierung für das Web können Sie verschiedene Frameworks verwenden, in verschiedenen Sprachen schreiben, verschiedene IDEs verwenden, während es für iOS nur Swift, Cocoa und Xcode gibt. Wenn eine neue Funktion für Xcode herauskommt, wird sie für alle Entwickler angezeigt. Wenn nicht, dann nein. Eine solche Einschränkung von Apple bietet Ordnung beim Schreiben von Code, aber im Internet müssen Sie diese Reihenfolge selbst festlegen.


Ich kann auch eine große Anzahl von Open-Source-Lösungen nennen, die nicht für iOS geeignet sind. Als ich anfing, mobile Anwendungen zu schreiben, suchte ich nach Tools ähnlich dem Web, die etwas automatisieren würden, aber hier muss ich mit meinen Händen schreiben.


Neben der Entwicklung für iOS bietet Apple dem Entwickler mehr Freiheit bei der Implementierung von Funktionen - Face ID, iCloud, Speicher und vieles mehr. Sie haben guten Zugriff auf benutzerdefinierte Hardware. Und im Browser sind Sie durch die Möglichkeiten dieses Browsers eingeschränkt.


Weiterer Weg


Meine potenzielle Entwicklung im Internet ist das Studium von Dingen, die im Arbeitsalltag nicht sehr gefragt sind. In iOS habe ich noch viele Fragen, es gibt Möglichkeiten, sich zu entwickeln, zu wachsen und zu lernen. Ich bin von der Möglichkeit der praktischen Anwendung von Fähigkeiten im Rahmen des Alltags und der Arbeit angezogen: Sie müssen etwas für das Telefon schreiben - ich werde es schreiben, ich brauche es für den Mac - ich werde mich selbst quälen, es klären und schreiben, auch für die Uhr und Apple TV. Ich wollte schon Spielzeug schreiben, aber dann wurde mir klar, dass dies eine separate komplexe Richtung ist, in die das Eintauchen zu lange dauern wird. Ich bin noch nicht bereit dafür.


Jetzt beschäftige ich mich mehr mit der Entwicklung für iOS, aber ich kann jederzeit zurückkehren. Ich verfolge häufige Web-Updates, erhalte Versionshinweise und verstehe, wohin alles führt. Auf mobilen Plattformen werden Updates praktisch einmal im Jahr durchgeführt.


Unmittelbar nach der Ankündigung von SwiftUI und neuen Versionen von Betriebssystemen wollte ich sie berühren. Ich habe eine Beta installiert ... und die Uhr getötet - sie wurde zu einem Ziegelstein. Damit sie wieder funktionieren, musste ich das Telefon auch auf die grobe, fehlerhafte Beta von iOS aktualisieren.


Im Allgemeinen hat mir der Ansatz mit SwiftUI viel besser gefallen als der, mit dem wir gerade arbeiten - Auto Layout. SwiftUI ist einfach und unkompliziert. Sie schreiben den Code und sehen sofort, was Sie erhalten. Tatsächlich ähnelt es dem Web: Sie schreiben den Code und alles wird sofort im Browser angezeigt. Es erfordert keine lange Kompilierung und ständige Zusammenstellung der Anwendung.



Was ist das Ergebnis?


Ich bereue nicht, dass ich diesen Weg gegangen bin. Wenn Sie meine Erfahrung wiederholen möchten, bewerten Sie Ihre Fähigkeiten und Fertigkeiten Ihres Unternehmens. Die Kollegen von Apiqa haben mich getroffen, aber nicht die Tatsache, dass Sie das Gleiche haben werden. Bevor Sie mit einem solchen Übergang beginnen, besprechen Sie dies mit dem Management.


Es ist wichtig, genügend Zeit für die mobile Entwicklung aufzuwenden und neues Wissen in einer Kampfumgebung anzuwenden. Die Erstellung einer einfachen Anwendung liefert kein vollständiges Bild. Wertvolle Erfahrungen entstehen nur, wenn es eine Aufgabe gibt, die nicht aufgegeben werden kann.


Wenn Sie mit dem Programmieren überhaupt nicht vertraut sind, denken Sie daran, dass im Internet die Eingabeleiste niedriger ist und viel mehr Bildungsressourcen auf Russisch verfügbar sind. iOS ist beim Schreiben von Code schwieriger zu beherrschen - hier muss man als Programmierer denken, um über genügend Grundkenntnisse zu verfügen.


Jede Person, die sich eine solche Aufgabe gestellt hat, kann Web- oder Android-Entwickler werden. Sie müssen nur nach Informationen suchen, diese studieren und Erfahrungen sammeln. Aber um sich iOS zu widmen, muss man sich zumindest einen Mac zulegen.

Source: https://habr.com/ru/post/de460223/


All Articles