[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:mobile\u002Fmobile-ui-lifecycle":4,"config":211},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":112,"samples":126},"mobile","Mobil","","mobile-ui-lifecycle","Mobile Ui Lifecycle","tr",75,2400,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,94,97,100,103,106,109],{"key":19,"name":20,"count":11},"fl-dart-async-isolates","Fl Dart Async Isolates",{"key":22,"name":23,"count":11},"fl-dart-language-null-safety","Fl Dart Language Null Safety",{"key":25,"name":26,"count":11},"fl-flutter-persistence-storage","Fl Flutter Persistence Storage",{"key":28,"name":29,"count":11},"fl-flutter-platform-channels-lifecycle","Fl Flutter Platform Channels Lifecycle",{"key":31,"name":32,"count":11},"fl-flutter-rendering-widget-tree","Fl Flutter Rendering Widget Tree",{"key":34,"name":35,"count":11},"fl-flutter-state-management-widgets","Fl Flutter State Management Widgets",{"key":37,"name":38,"count":11},"ios-core-data-swiftdata-persistence","Ios Core Data Swiftdata Persistence",{"key":40,"name":41,"count":11},"ios-lifecycle-background-execution","Ios Lifecycle Background Execution",{"key":43,"name":44,"count":11},"ios-memory-management-arc","Ios Memory Management Arc",{"key":46,"name":47,"count":11},"ios-swift-concurrency-structured","Ios Swift Concurrency Structured",{"key":49,"name":50,"count":11},"ios-swift-type-system-optionals","Ios Swift Type System Optionals",{"key":52,"name":53,"count":11},"ios-swiftui-state-rendering","Ios Swiftui State Rendering",{"key":55,"name":56,"count":11},"kt-android-lifecycle-background-execution","Kt Android Lifecycle Background Execution",{"key":58,"name":59,"count":11},"kt-android-memory-context-leaks","Kt Android Memory Context Leaks",{"key":61,"name":62,"count":11},"kt-android-room-persistence","Kt Android Room Persistence",{"key":64,"name":65,"count":11},"kt-jetpack-compose-state-recomposition","Kt Jetpack Compose State Recomposition",{"key":67,"name":68,"count":11},"kt-kotlin-coroutines-flow","Kt Kotlin Coroutines Flow",{"key":70,"name":71,"count":11},"kt-kotlin-type-system-null-safety","Kt Kotlin Type System Null Safety",{"key":73,"name":74,"count":11},"mobile-distribution-ci","Mobile Distribution Ci",{"key":76,"name":77,"count":11},"mobile-navigation","Mobile Navigation",{"key":79,"name":80,"count":11},"mobile-networking-offline","Mobile Networking Offline",{"key":82,"name":83,"count":11},"mobile-performance-battery","Mobile Performance Battery",{"key":85,"name":86,"count":11},"mobile-security-storage","Mobile Security Storage",{"key":88,"name":89,"count":11},"mobile-state-data","Mobile State Data",{"key":91,"name":92,"count":11},"mobile-testing-automation","Mobile Testing Automation",{"key":8,"name":9,"count":11},{"key":95,"name":96,"count":11},"rn-javascript-typescript-fundamentals","Rn Javascript Typescript Fundamentals",{"key":98,"name":99,"count":11},"rn-native-bridge-modules","Rn Native Bridge Modules",{"key":101,"name":102,"count":11},"rn-navigation-lifecycle","Rn Navigation Lifecycle",{"key":104,"name":105,"count":11},"rn-networking-persistence-offline","Rn Networking Persistence Offline",{"key":107,"name":108,"count":11},"rn-performance-rendering","Rn Performance Rendering",{"key":110,"name":111,"count":11},"rn-react-hooks-state-management","Rn React Hooks State Management",[113,117,120,123],{"key":114,"name":115,"count":116},"android-kotlin","Android (Kotlin)",450,{"key":118,"name":119,"count":116},"flutter","Flutter",{"key":121,"name":122,"count":116},"ios-swift","iOS (Swift)",{"key":124,"name":125,"count":116},"react-native","React Native",[127,145,159,172,185,198],{"id":128,"topic":9,"difficulty":129,"body":130,"options":131,"correct_key":136,"explanation":144},"019f677d-2c12-7e62-a45d-49306011eb91",1,"Mobil uygulama lifecycle terimlerinde \"foreground\" (ön plan) durumu ne anlama gelir?",[132,135,138,141],{"key":133,"text":134},"a","Süreç var ama hiç penceresi yok",{"key":136,"text":137},"b","Ekranda görünür ve kullanıcı girdisi alıyor",{"key":139,"text":140},"c","Süreç bellekten tamamen kaldırılmış",{"key":142,"text":143},"d","Uygulama ilk açılıştan önce hâlâ derleniyor","Foreground, uygulamanın arayüzünün ekranda olup kullanıcı girdisi aldığı durumdur; background'da (görünmez ama süreç canlı) veya terminated'da (süreç yok) bu geçerli değildir.",{"id":146,"topic":9,"difficulty":147,"body":148,"options":149,"correct_key":142,"explanation":158},"019f677d-2c13-77af-9100-813ffc807f79",2,"Kullanıcı bir ekran açıkken ana ekran (home) tuşuna basıyor. Hemen ardından uygulamanın sürecine genelde ne olur?",[150,152,154,156],{"key":133,"text":151},"Bir saniye içinde kesinlikle sonlanır",{"key":136,"text":153},"Sonraki home basışında sıfırdan başlar",{"key":139,"text":155},"Bellek boşaltmak için çökmeye zorlanır",{"key":142,"text":157},"Arka plana geçer, sistem geri alana kadar canlı kalır","Home'a basmak genelde uygulamayı arka plana alır; süreç (kısıtlamalarla) çalışmaya devam eder, sistem belleğe ihtiyaç duyup sonlandırmaya karar verene kadar.",{"id":160,"topic":9,"difficulty":147,"body":161,"options":162,"correct_key":133,"explanation":171},"019f677d-2c13-7f40-84e7-ebd7bab785bb","Bir uygulama, kullanıcı o ekrandayken açık bir kamera kaynağı tutuyor. Arka plana geçerken kamerayı neden serbest bırakmalı?",[163,165,167,169],{"key":133,"text":164},"Arka plandaki uygulama zaten genelde kullanamaz; tutmak pil israfı",{"key":136,"text":166},"Kameralar donanım seviyesinde otomatik kapanır",{"key":139,"text":168},"Serbest bırakmak sadece kozmetiktir, gerçek etkisi yok",{"key":142,"text":170},"Kamera erişimi lifecycle ile hiç ilgili değildir","Kamera\u002Fsensör gibi hassas donanım kaynakları arka plana geçişte serbest bırakılmalı çünkü arka plandaki uygulama zaten genelde bunları kullanamaz ve tutmak pil israfı yaratıp diğer uygulamaları engelleyebilir.",{"id":173,"topic":9,"difficulty":129,"body":174,"options":175,"correct_key":139,"explanation":184},"019f677d-2c14-772d-8e9e-e3b2cc5ee054","Uygulama lifecycle bağlamında \"state restoration\" (durum geri yükleme) nedir?",[176,178,180,182],{"key":133,"text":177},"Güncelleme sonrası kaynak kodu yeniden derlemek",{"key":136,"text":179},"Tüm tercihleri fabrika ayarlarına sıfırlamak",{"key":139,"text":181},"Yeniden açılışta ekranı\u002Fveriyi geri getirmek",{"key":142,"text":183},"Kullanıcıyı güvenlik için otomatik çıkışa zorlamak","State restoration, sistem tarafından öldürülmenin ardından süreç yeniden başlatıldığında kullanıcıyı kaldığı ekrana, scroll konumuna ve girdiği veriye geri döndürmek anlamına gelir.",{"id":186,"topic":9,"difficulty":147,"body":187,"options":188,"correct_key":136,"explanation":197},"019f677d-2c15-70f6-ba15-3a0fea2facb9","Kullanıcı açısından \"arka plandaki\" bir uygulama ile \"sonlandırılmış\" bir uygulama arasındaki temel pratik fark nedir?",[189,191,193,195],{"key":133,"text":190},"Hiçbir durumda gözlemlenebilir fark yoktur",{"key":136,"text":192},"Arka plandaki anında devam eder, sonlandırılmış durumu yeniden kurar",{"key":139,"text":194},"Sonlandırılmış ağ isteklerini çalıştırmaya devam eder, arka plandaki etmez",{"key":142,"text":196},"Arka plandaki form girdisini her zaman kaybeder, sonlandırılmış asla kaybetmez","Arka plandaki süreç belleğini (değişkenler, view durumu) korur, bu yüzden geri dönüş anındadır. Sonlandırılmış uygulamanın süreci kalmadığından yeniden başlatma her şeyi (kurtarılan durum hariç) sıfırdan kurmak demektir.",{"id":199,"topic":9,"difficulty":147,"body":200,"options":201,"correct_key":133,"explanation":210},"019f677d-2c15-7724-81f6-e57734fda584","Ekran lifecycle olayları garantili bir sırayla tetiklenir (ör. \"odağı kaybetmek üzere\" \"arka plana girdi\"den önce). Bu neden önemlidir?",[202,204,206,208],{"key":133,"text":203},"Temizlik doğru aşamaya güvenilir yerleştirilir",{"key":136,"text":205},"Yalnızca otomatik UI test araçları için önemlidir",{"key":139,"text":207},"Uygulamanın asla sonlandırılmayacağını garanti eder",{"key":142,"text":209},"Kaynak serbest bırakma ihtiyacını tamamen kaldırır","Framework sabit bir olay sırası garantilediği için geliştiriciler belirli temizlik\u002Fkaydetme mantığını doğru callback'e koyup bunun bir sonraki aşamadan önce her zaman çalışacağına güvenebilir, tahmin etmek zorunda kalmaz.",{"fields":212,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[213,238,258,275,299,312,331,340,362,372,378,385],{"key":214,"name_tr":215,"name_en":215,"sort":129,"specializations":216},"backend","Backend",[217,220,223,226,229,232,235],{"key":218,"name":219,"field":214},"general","Genel",{"key":221,"name":222,"field":214},"go","Go",{"key":224,"name":225,"field":214},"python","Python",{"key":227,"name":228,"field":214},"java","Java",{"key":230,"name":231,"field":214},"csharp","C#\u002F.NET",{"key":233,"name":234,"field":214},"nodejs","Node.js",{"key":236,"name":237,"field":214},"php","PHP",{"key":239,"name_tr":240,"name_en":240,"sort":147,"specializations":241},"frontend","Frontend",[242,243,246,249,252,255],{"key":218,"name":219,"field":239},{"key":244,"name":245,"field":239},"javascript","JavaScript",{"key":247,"name":248,"field":239},"typescript","TypeScript",{"key":250,"name":251,"field":239},"react","React",{"key":253,"name":254,"field":239},"vue","Vue",{"key":256,"name":257,"field":239},"angular","Angular",{"key":259,"name_tr":260,"name_en":260,"sort":261,"specializations":262},"fullstack","Fullstack",3,[263,264,265,266,267,268,269,270,271,272,273,274],{"key":218,"name":219,"field":259},{"key":221,"name":222,"field":214},{"key":224,"name":225,"field":214},{"key":227,"name":228,"field":214},{"key":230,"name":231,"field":214},{"key":233,"name":234,"field":214},{"key":236,"name":237,"field":214},{"key":244,"name":245,"field":239},{"key":247,"name":248,"field":239},{"key":250,"name":251,"field":239},{"key":253,"name":254,"field":239},{"key":256,"name":257,"field":239},{"key":276,"name_tr":277,"name_en":277,"sort":278,"specializations":279},"devops-cloud","DevOps \u002F Cloud",4,[280,281,284,287,290,293,296],{"key":218,"name":219,"field":276},{"key":282,"name":283,"field":276},"aws","AWS",{"key":285,"name":286,"field":276},"gcp","GCP",{"key":288,"name":289,"field":276},"azure","Azure",{"key":291,"name":292,"field":276},"kubernetes","Kubernetes",{"key":294,"name":295,"field":276},"terraform","Terraform",{"key":297,"name":298,"field":276},"linux","Linux",{"key":300,"name_tr":301,"name_en":301,"sort":302,"specializations":303},"ai-engineer","AI Engineer",5,[304,305,306,309],{"key":218,"name":219,"field":300},{"key":224,"name":225,"field":300},{"key":307,"name":308,"field":300},"llm-rag","LLM\u002FRAG",{"key":310,"name":311,"field":300},"mlops","MLOps",{"key":313,"name_tr":314,"name_en":315,"sort":316,"specializations":317},"database","Veritabanı","Database",6,[318,319,322,325,328],{"key":218,"name":219,"field":313},{"key":320,"name":321,"field":313},"postgresql","PostgreSQL",{"key":323,"name":324,"field":313},"mysql","MySQL",{"key":326,"name":327,"field":313},"mongodb","MongoDB",{"key":329,"name":330,"field":313},"redis","Redis",{"key":5,"name_tr":6,"name_en":332,"sort":333,"specializations":334},"Mobile",7,[335,336,337,338,339],{"key":218,"name":219,"field":5},{"key":121,"name":122,"field":5},{"key":114,"name":115,"field":5},{"key":118,"name":119,"field":5},{"key":124,"name":125,"field":5},{"key":341,"name_tr":342,"name_en":343,"sort":344,"specializations":345},"security","Güvenlik","Security",8,[346,347,350,353,356,359],{"key":218,"name":219,"field":341},{"key":348,"name":349,"field":341},"appsec","AppSec",{"key":351,"name":352,"field":341},"offensive-pentest","Offensive \u002F Pentest",{"key":354,"name":355,"field":341},"cloud-security","Cloud Security",{"key":357,"name":358,"field":341},"devsecops","DevSecOps",{"key":360,"name":361,"field":341},"blue-team-incident","Blue Team \u002F Incident",{"key":363,"name_tr":364,"name_en":365,"sort":366,"specializations":367},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[368,369],{"key":218,"name":219,"field":363},{"key":370,"name":371,"field":363},"test-automation","Test Automation",{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":218,"name":219,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":218,"name":219,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":218,"name":219,"field":386},[14,15,16],{"junior":393,"mid":395,"senior":396},{"questions":394,"median_sec":3},20,{"questions":394,"median_sec":3},{"questions":394,"median_sec":3},[10,398],"en",[400,401],"google","github",22200,true]