Zyski:
- Możliwość rozróżnienia, gdzie sztuczna inteligencja zapewnia rzeczywistą prędkość w rozwoju mobilnym (kod wzorca, wersja robocza, uczenie się), a gdzie (architektura, pozwolenie, bezpieczeństwo, publikacja) decyzja pozostaje w gestii człowieka, w zależności od poziomu ryzyka zadania.
- Możliwość zastosowania dyscypliny weryfikującej każdy wynik sztucznej inteligencji na etapach kompilacji, testowania i przeglądu
- Możliwość wyrobienia nawyku pisania mocnych, kontekstowych podpowiedzi oraz ochrony danych osobowych i tajnych kluczy bez udostępniania ich sztucznej inteligencji
Tworzenie aplikacji mobilnych to jedna z najbardziej konkurencyjnych dziedzin oprogramowania na świecie. Mówimy o produkcie, który działa na miliardach urządzeń, którego cykl aktualizacji jest zależny od akceptacji sklepu i jest cały czas mierzony w kieszeni użytkownika. Sztuczna inteligencja (AI – systemy oprogramowania, które potrafią wytwarzać tekst, kod i rozwiązania takie jak człowiek) wkroczyła na tę dziedzinę na dwa sposoby: po pierwsze, jako pomoc przyspieszająca proces rozwoju (generowanie kodu, debugowanie, pisanie testów), a po drugie, jako funkcja wbudowana w aplikację (rozpoznawanie obrazu na urządzeniu, asystent czatu, silnik rekomendacji). Moduł ten uczy obu metod od początku do końca. Ale od razu skupmy się na jednym zdaniu: sztuczna inteligencja nie zastępuje programisty mobilnego; rozszerza swoją produktywność i zakres. Ponosisz odpowiedzialność za każdą wydaną linię kodu, każde wymagane pozwolenie i każdą transakcję dokonaną przy użyciu danych użytkownika.
W tej części zobaczymy, gdzie sztuczna inteligencja wnosi prawdziwą wartość w rozwoju urządzeń mobilnych, gdzie musi podporządkować się ludziom, jak weryfikować każdy wynik i dlaczego dyscyplina w zakresie bezpieczeństwa prywatności nie podlega negocjacjom.
Gdzie sztuczna inteligencja przydaje się w rozwoju urządzeń mobilnych?
Programowanie mobilne składa się z wielu powtarzalnych i wzorcowych zadań: pisania kodu widoku, konfigurowania warstwy żądań sieciowych, definiowania modelu danych, tworzenia przypadku testowego, rozwiązywania komunikatu o błędzie. Sztuczna inteligencja tworzy te wzorce bardzo szybko. Natomiast decyzje dotyczące architektury, preferencje użytkownika, granice bezpieczeństwa i dokładność logiki biznesowej są domeną ludzi.
Przydatne jest podzielenie zadań na trzy grupy w zależności od poziomu ryzyka:
Typ zadania
Rola sztucznej inteligencji
rola mężczyzny
Kod szablonu (płyta standardowa), przykładowy ekran, konwersja
Generuje przeciąg, przyspiesza go
Recenzje, integruje
Logika biznesowa, przepływ danych, integracja API
Zawiera sugestie i wersje robocze
Weryfikuje, testuje, waliduje
Architektura, prośba o pozwolenie, bezpieczeństwo, decyzja o transmisji
Zawiera listę opcji i uzasadnień
Podejmuje decyzję i ponosi za nią odpowiedzialność
Ta tabela będzie naszym kompasem w całym module. Prawa kolumna nigdy nie jest przekazywana AI.
Wskazówka: pomyśl o sztucznej inteligencji jak o „bardzo szybkim, ale niedoświadczonym stażyście”. Dajesz mu jasne zadanie, czytasz wydruk, poddajesz go testowi i bierzesz na siebie odpowiedzialność. Nie wysyłasz kodu wyprodukowanego przez stażystę na produkcję (środowisko na żywo) bez jego przeczytania; Ta sama zasada dotyczy AI.
Dyscyplina weryfikacji: trzy kroki
Tekst AI jest płynny i wygląda pewnie; Ale płynność to nie dokładność. Sztuczna inteligencja czasami pasuje do funkcji bibliotecznej, która nie istnieje (nazywa się to halucynacją – model z pewnością tworzy coś, co w rzeczywistości nie istnieje). Oto trzyetapowy filtr, który programista mobilny stosuje do każdego wyniku AI:
- Skompiluj i uruchom. Czy kod faktycznie się kompiluje, czy aplikacja się otwiera? Czy API sugerowane przez sztuczną inteligencję rzeczywiście znajduje się w SDK (software development kit – gotowy zestaw narzędzi, jakie oferuje platforma)?
- Przetestuj to. Przetestuj oczekiwane zachowanie automatycznie lub ręcznie. „Wydaje się, że to działa” nie wystarczy; Wypróbuj przypadki Edge (bezczynne dane, brak sieci, odmowa uprawnień).
- Przeanalizuj i uzasadnij. Czy rozumiesz, dlaczego kod jest napisany w ten sposób? Nie publikuj kodu, którego nie rozumiesz. Zapytaj sztuczną inteligencję „co robi ta linia, dlaczego jest potrzebna?” zapytać.
Uwaga: Numery wersji, nazwy bibliotek i podpisy API dostarczone przez YZ mogą być nieaktualne lub sfabrykowane. Nie może wiedzieć o aktualizacjach wydanych po dacie granicznej (ostatnim dniu szkolenia modelu). Zawsze sprawdzaj krytyczną zależność na podstawie oficjalnej dokumentacji (programista Apple, programista Android).
trzy mini etui
Przypadek 1 — Przyspieszenie rozwoju ekranów. Zespół ds. handlu elektronicznego przygotował ekran szczegółów produktu przy pomocy sztucznej inteligencji Jetpack Compose (zestaw narzędzi nowoczesnego interfejsu Androida). Pierwsza wersja robocza, która zwykle zajmuje 2 dni, ukazała się w 3 godziny. Jednak podczas testu zespół zauważył, że formatowanie ceny stworzone przez sztuczną inteligencję powodowało nieprawidłowe zaokrąglanie groszy: na niektórych urządzeniach cena 19,99 TL była wyświetlana jako 20 TL. Jeśli nie byłoby weryfikacji, ten błąd pojawiłby się. Zysk jest realny, ale kontrola jest koniecznością.
Przypadek 2 — Złapano halucynację. Programista otrzymał kod od sztucznej inteligencji, aby poprosić o pozwolenie na lokalizację w systemie iOS. AI zaproponowało funkcję o nazwie requestPreciseLocationOnce(). Nie było takiego API; Poprawna była requestWhenInUseAuthorization(). Błąd kompilacji ujawnił to natychmiast. Lekcja: kompilator jest najbardziej uczciwym audytorem AI.
Przypadek 3 – Pułapka prywatności. Jeden zespół wkleił raporty o błędach użytkowników do AI i poprosił o rozwiązanie. Raporty zawierały adresy e-mail użytkowników i identyfikatory urządzeń. Oznaczało to wyciek danych osobowych do serwisu strony trzeciej i stanowiło naruszenie KVKK (ustawy o ochronie danych osobowych). Rozwiązanie: wyczyszczenie (maskowanie) pól osobistych przed przekazaniem danych AI.
Słaba zachęta/silna zachęta
Różnica między dwoma monitami dotyczącymi tego samego zadania określa jakość wydruku.
Słaby monit: „Napisz mi ekran logowania”.
Potężny monit: „Utwórz ekran logowania za pomocą Jetpack Compose dla Androida. Wymagania: – Pole e-mail i hasło; weryfikacja formatu adresu e-mail, hasło co najmniej 8 znaków – Przycisk „Zaloguj się” jest wyłączony podczas ładowania i pokazywania pokrętła – Komunikaty o błędach pojawiają się pod polem czerwonym tekstem – Architektura MVVM: stan w ViewModel, tylko Composable UI – Kotlin, Material 3, minSdk 24Wystarczy podać kod, a następnie każdą sekcję wyjaśnić w 1 zdaniu.
Drugi monit informuje o platformie, narzędziu, architekturze, granicach i formacie wyjściowym. Nie pozostawia nic do odgadnięcia przez sztuczną inteligencję; Daje zatem znacznie bardziej użyteczny i łatwiejszy do sprawdzenia wynik.
Kopiowalne szablony startowe
Skorzystaj z poniższych szablonów, wypełniając je własnym kontekstem.
Szablon roli i kontekstu: „Jesteś starszym programistą [iOS/Android/Flutter]. Mój projekt: [typ aplikacji], platforma docelowa [wersja], architektura [MVVM/Clean]. Zadanie: [co chcesz]. Ograniczenia: [język, biblioteka, wersja]. Najpierw podsumuj plan w 3 elementach, następnie utwórz kod, a następnie wypisz ryzyko.
Szablon przeglądu kodu: „Przeanalizuj następujący kod w [języku]. Zidentyfikuj: 1) Błędy i ryzyko awarii 2) Problemy z pamięcią/wydajnością 3) Luki w zabezpieczeniach i prywatności 4) Gdzie można to zapisać prościej. Numery wierszy dla każdego elementu i zasugeruj poprawki. [kod]”
Szablon szkoleniowy: „Wyjaśnij [koncepcję, np. async/await w Swift] z perspektywy programisty mobilnego. Podaj prosty przykład, wspomnij o 3 typowych błędach i wskaż, kiedy nie powinienem go używać”.
Szablon weryfikacji: „Zaproponowałeś ten interfejs API/funkcję: [nazwa]. Sprawdź: w której wersji pakietu SDK został on wprowadzony, jakich uprawnień wymaga, czy jest przestarzały? Jeśli nie jesteś pewien, powiedz „nie masz pewności, sprawdź oficjalną dokumentację”.
Typowe błędy
- Wklejenie wyniku bez jego czytania. Najczęstszy i najniebezpieczniejszy błąd. Nawet po skompilowaniu logika może być błędna.
- Przekazywanie poufnych danych AI. Klucz API, dane użytkownika, certyfikat podpisujący nigdy nie są wklejane do żądania.
- Brak weryfikacji wersji i interfejsu API. Sztuczna inteligencja może sugerować przestarzałe lub wymyślone interfejsy API; Oficjalny dokument ma ostatnie słowo.
- Pozostawienie decyzji architektonicznej AI. „Która architektura jest najlepsza?” Odpowiedź na pytanie zależy od Twojego projektu; AI daje ogólną odpowiedź, znasz kontekst.
- Pisanie jednego wielkiego monitu. Próba rozwiązania złożonego zadania za pomocą jednego żądania; Bezpieczniej jest podzielić to na małe, weryfikowalne kroki.
- Proszenie o pozwolenie „na wszelki wypadek”. Sztuczna inteligencja czasami dodaje więcej uprawnień niż to konieczne; Każde zezwolenie stwarza ryzyko dla zatwierdzenia sklepu i zaufania użytkowników.
Podsumowując
Sztuczna inteligencja odgrywa dwie role w programowaniu mobilnym: asystenta, który przyspiesza proces programowania, oraz możliwości wbudowanej w aplikację. Kod wzorcowy zapewnia ogromne przyspieszenie pisania i uczenia się; Jednak decyzje dotyczące architektury, bezpieczeństwa, pozwoleń i publikacji są podejmowane przez człowieka. Każde wyjście jest weryfikowane w trzech etapach: kompilacja, uruchomienie, testowanie i przeglądanie. Poufne dane i dane osobowe nigdy nie są przekazywane sztucznej inteligencji. Silna platforma popytu jasno określa narzędzie, ograniczenia i format wyjściowy. Dyscyplina ta stanowi podstawę dla pozostałej części modułu.
Zadanie aplikacji
Wybierz ekran z własnego projektu mobilnego (lub wyimaginowanej „aplikacji do robienia notatek”). Napisz zachętę dla tego ekranu, korzystając z powyższego „szablonu roli i kontekstu”. Spróbuj skompilować kod wygenerowany przez sztuczną inteligencję do projektu i przepuścić go przez trzyetapowy filtr weryfikacyjny: czy się skompilował, czy działał zgodnie z oczekiwaniami, czy zrozumiałeś każdą linijkę? Zanotuj przynajmniej jeden znaleziony błąd lub fałszywy interfejs API.
lista kontrolna
- [ ] Ustaliłem, do którego z trzech segmentów zalicza się zadanie, na podstawie poziomu ryzyka
- [ ] W żądaniu określiłem platformę, wersję, architekturę i ograniczenia
- [ ] Skompilowałem dane wyjściowe i uruchomiłem je
- [ ] Testowałem przypadki graniczne (bezczynne dane, brak sieci, odmowa uprawnień)
- [ ] Upewniłem się, że zrozumiałem każdą linijkę
- [ ] Nie przekazałem AI żadnych danych osobowych ani kluczy prywatnych
- [ ] Sprawdziłem krytyczne interfejsy API na podstawie oficjalnej dokumentacji