[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:mobile\u002Fjunior":4,"config":213},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":8,"spec_key":8,"spec_name":8,"locale":9,"cell_total":10,"field_total":11,"seniorities":12,"topics":15,"specs":113,"samples":127},"mobile","Mobil","junior","","tr",1664,2400,[7,13,14],"mid","senior",[16,20,23,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83,86,89,92,95,98,101,104,107,110],{"key":17,"name":18,"count":19},"fl-dart-async-isolates","Fl Dart Async Isolates",75,{"key":21,"name":22,"count":19},"fl-dart-language-null-safety","Fl Dart Language Null Safety",{"key":24,"name":25,"count":19},"fl-flutter-persistence-storage","Fl Flutter Persistence Storage",{"key":27,"name":28,"count":19},"fl-flutter-platform-channels-lifecycle","Fl Flutter Platform Channels Lifecycle",{"key":30,"name":31,"count":19},"fl-flutter-rendering-widget-tree","Fl Flutter Rendering Widget Tree",{"key":33,"name":34,"count":19},"fl-flutter-state-management-widgets","Fl Flutter State Management Widgets",{"key":36,"name":37,"count":19},"ios-core-data-swiftdata-persistence","Ios Core Data Swiftdata Persistence",{"key":39,"name":40,"count":19},"ios-lifecycle-background-execution","Ios Lifecycle Background Execution",{"key":42,"name":43,"count":19},"ios-memory-management-arc","Ios Memory Management Arc",{"key":45,"name":46,"count":19},"ios-swift-concurrency-structured","Ios Swift Concurrency Structured",{"key":48,"name":49,"count":19},"ios-swift-type-system-optionals","Ios Swift Type System Optionals",{"key":51,"name":52,"count":19},"ios-swiftui-state-rendering","Ios Swiftui State Rendering",{"key":54,"name":55,"count":19},"kt-android-lifecycle-background-execution","Kt Android Lifecycle Background Execution",{"key":57,"name":58,"count":19},"kt-android-memory-context-leaks","Kt Android Memory Context Leaks",{"key":60,"name":61,"count":19},"kt-android-room-persistence","Kt Android Room Persistence",{"key":63,"name":64,"count":19},"kt-jetpack-compose-state-recomposition","Kt Jetpack Compose State Recomposition",{"key":66,"name":67,"count":19},"kt-kotlin-coroutines-flow","Kt Kotlin Coroutines Flow",{"key":69,"name":70,"count":19},"kt-kotlin-type-system-null-safety","Kt Kotlin Type System Null Safety",{"key":72,"name":73,"count":19},"mobile-distribution-ci","Mobile Distribution Ci",{"key":75,"name":76,"count":19},"mobile-navigation","Mobile Navigation",{"key":78,"name":79,"count":19},"mobile-networking-offline","Mobile Networking Offline",{"key":81,"name":82,"count":19},"mobile-performance-battery","Mobile Performance Battery",{"key":84,"name":85,"count":19},"mobile-security-storage","Mobile Security Storage",{"key":87,"name":88,"count":19},"mobile-state-data","Mobile State Data",{"key":90,"name":91,"count":19},"mobile-testing-automation","Mobile Testing Automation",{"key":93,"name":94,"count":19},"mobile-ui-lifecycle","Mobile Ui Lifecycle",{"key":96,"name":97,"count":19},"rn-javascript-typescript-fundamentals","Rn Javascript Typescript Fundamentals",{"key":99,"name":100,"count":19},"rn-native-bridge-modules","Rn Native Bridge Modules",{"key":102,"name":103,"count":19},"rn-navigation-lifecycle","Rn Navigation Lifecycle",{"key":105,"name":106,"count":19},"rn-networking-persistence-offline","Rn Networking Persistence Offline",{"key":108,"name":109,"count":19},"rn-performance-rendering","Rn Performance Rendering",{"key":111,"name":112,"count":19},"rn-react-hooks-state-management","Rn React Hooks State Management",[114,118,121,124],{"key":115,"name":116,"count":117},"android-kotlin","Android (Kotlin)",450,{"key":119,"name":120,"count":117},"flutter","Flutter",{"key":122,"name":123,"count":117},"ios-swift","iOS (Swift)",{"key":125,"name":126,"count":117},"react-native","React Native",[128,146,160,173,186,199],{"id":129,"topic":73,"difficulty":130,"body":131,"options":132,"correct_key":134,"explanation":145},"019f677d-2b5d-7e0b-91c9-81805b8875fe",1,"Yeni bir uygulama sürümünü mağazaya göndermeden önce, hangi pratik reddedilme riskini en doğrudan azaltır?",[133,136,139,142],{"key":134,"text":135},"a","Göndermeden önce build'i mağaza inceleme kurallarına karşı kontrol etmek.",{"key":137,"text":138},"b","İnceleyenlerin aktif geliştirme gördüğünü düşünmesi için sürüm numarasını büyük ölçüde artırmak.",{"key":140,"text":141},"c","İnceleme kuyruğunun daha kısa olduğu düşük yoğunluklu saatlerde göndermek.",{"key":143,"text":144},"d","Özellik eksiksizliğini göstermek için mağaza listesine daha fazla ekran görüntüsü eklemek.","İnceleme sonucu kurallara uyuma bağlıdır (izin gerekçesi, çalışan akışlar, doğru metadata); sürüm numarası, gönderim saati veya ekran görüntüsü sayısı değil.",{"id":147,"topic":73,"difficulty":148,"body":149,"options":150,"correct_key":137,"explanation":159},"019f677d-2b6f-7b19-96fb-9a5281f10bc5",2,"Bir ekip, sürüm takvimine gün ekleyen inceleme döngülerinden kaçınmak istiyor. Hangi gönderim-öncesi kontrol yaygın bir reddedilme nedenini erken yakalar?",[151,153,155,157],{"key":134,"text":152},"Build'in en güncel derleyici sürümüyle derlendiğini doğrulamak.",{"key":137,"text":154},"İstenen her iznin, o izni kullanan çalışan ve ulaşılabilir bir kod yolu olduğunu doğrulamak.",{"key":140,"text":156},"Uygulama ikonunun önerilen piksel boyutlarıyla tam eşleştiğinden emin olmak.",{"key":143,"text":158},"Sürüm notlarının olabildiğince çok dile çevrildiğinden emin olmak.","İnceleyenler, işlevsel ve ulaşılabilir bir kullanımı olmayan izin talepleri olan uygulamaları sıkça reddeder. Derleyici sürümü, ikon boyutu ve çeviri eksiksizliği tipik reddedilme nedenleri değildir.",{"id":161,"topic":73,"difficulty":148,"body":162,"options":163,"correct_key":140,"explanation":172},"019f677d-2b70-7931-869d-8d6b586903e0","Bir ekip bir build gönderiyor ve giriş ekranı test hesabı olmadan geçilemediği için reddediliyor; inceleyen kişi ekranı aşamıyor. Ekip gelecekteki gönderimlerde bunu önlemek için neyi değiştirmeli?",[164,166,168,170],{"key":134,"text":165},"Her gönderimden önce giriş ekranını tamamen kaldırmak.",{"key":137,"text":167},"Girişten sonraki ekran sayısını azaltmak.",{"key":140,"text":169},"İnceleyenlerin kilidi geçebilmesi için bir demo hesap sağlamak.",{"key":143,"text":171},"Uygulama açıklamasına giriş gereksinimini açıklayan bir not eklemek.","İnceleyenlerin uygulamaya gerçekten girebileceği bir yola ihtiyacı vardır; demo hesap veya atlama yolu kök nedeni çözer. Giriş ekranını kaldırmak ya da sadece metin notu eklemek inceleyene çalışan bir yol sağlamaz.",{"id":174,"topic":73,"difficulty":130,"body":175,"options":176,"correct_key":143,"explanation":185},"019f677d-2b71-7522-b320-1585fdc8aa77","Yeni bir uygulama sürümü yayınlarken 'kademeli rollout' ne anlama gelir?",[177,179,181,183],{"key":134,"text":178},"Yeni sürümü tüm kullanıcılara aynı anda vermek ama özelliklerin sadece yarısını açık tutmak.",{"key":137,"text":180},"Backend değişikliklerini uygulama güncellemesinden önce yayınlamak.",{"key":140,"text":182},"Güncellemeyi yalnızca en yeni işletim sistemini çalıştıran cihazlara vermek.",{"key":143,"text":184},"Önce kullanıcıların küçük bir yüzdesine vermek, sonra kademeli olarak genişletmek.","Kademeli rollout, bir sürümü belirli bir anda kullanıcı tabanının ne kadarının aldığını kontrol etmektir; küçük başlayıp genişletmektir — özellik açıp kapama, backend sıralaması veya OS hedeflemesi değildir.",{"id":187,"topic":73,"difficulty":148,"body":188,"options":189,"correct_key":134,"explanation":198},"019f677d-2b72-732f-8898-fddddd19cdef","Bir ekip yeni bir sürümü kullanıcıların %5'ine dağıtıyor. Birkaç saat içinde, önceki sürümün taban çizgisine göre çökme raporları keskin biçimde artıyor. Uygun acil eylem nedir?",[190,192,194,196],{"key":134,"text":191},"Rollout'u durdurmak ve etkilenen kullanıcılar için geri dönmek.",{"key":137,"text":193},"Daha hızlı çökme verisi toplamak için rollout'u hemen %100'e genişletmek.",{"key":140,"text":195},"İnceleme ekibinin etkilenen build'i reddetmesini beklemek.",{"key":143,"text":197},"Çökme yaşayan kullanıcılardan uygulamayı yeniden yüklemelerini istemek.","Taban çizgisine göre keskin bir çökme artışı, tam olarak kademeli rollout'un erken yakalamak için tasarlandığı sinyaldir; daha fazla kullanıcıya ulaşmadan durdurmak\u002Fgeri almak etki alanını sınırlar. Genişletmek zararı artırır; inceleme reddi veya yeniden yükleme isteği regresyonu çözmez.",{"id":200,"topic":73,"difficulty":201,"body":202,"options":203,"correct_key":137,"explanation":212},"019f677d-2b73-71a2-9bce-dedde87a4bde",3,"Bir rollout konfigürasyonu şu şekilde ayarlanmış:\n```\nrelease:\n  version: 4.2.0\n  rollout_percentage: 10\n  halt_on_crash_rate_increase: true\n```\nUygulamanın 200.000 aktif kullanıcısı varsa, rollout bu aşamadayken yaklaşık kaç kullanıcı 4.2.0 sürümünü almış olur?",[204,206,208,210],{"key":134,"text":205},"Yaklaşık 2.000 kullanıcı.",{"key":137,"text":207},"Yaklaşık 20.000 kullanıcı.",{"key":140,"text":209},"Yaklaşık 180.000 kullanıcı.",{"key":143,"text":211},"200.000 kullanıcının tamamı, çünkü rollout yüzdesi sadece güncelleme görünürlük zamanlamasını etkiler, toplamı değil.","200.000'in %10'u 20.000'dir. Rollout yüzdesi, bu aşamada nüfusun ne kadarının yeni sürümü aldığını doğrudan kontrol eder, sadece görünürlük zamanlamasını değil.",{"fields":214,"seniorities":389,"interview_shapes":390,"locales":395,"oauth":397,"question_count":400,"coach_enabled":401,"jd_match_enabled":401},[215,240,260,276,300,313,332,341,363,370,376,383],{"key":216,"name_tr":217,"name_en":217,"sort":130,"specializations":218},"backend","Backend",[219,222,225,228,231,234,237],{"key":220,"name":221,"field":216},"general","Genel",{"key":223,"name":224,"field":216},"go","Go",{"key":226,"name":227,"field":216},"python","Python",{"key":229,"name":230,"field":216},"java","Java",{"key":232,"name":233,"field":216},"csharp","C#\u002F.NET",{"key":235,"name":236,"field":216},"nodejs","Node.js",{"key":238,"name":239,"field":216},"php","PHP",{"key":241,"name_tr":242,"name_en":242,"sort":148,"specializations":243},"frontend","Frontend",[244,245,248,251,254,257],{"key":220,"name":221,"field":241},{"key":246,"name":247,"field":241},"javascript","JavaScript",{"key":249,"name":250,"field":241},"typescript","TypeScript",{"key":252,"name":253,"field":241},"react","React",{"key":255,"name":256,"field":241},"vue","Vue",{"key":258,"name":259,"field":241},"angular","Angular",{"key":261,"name_tr":262,"name_en":262,"sort":201,"specializations":263},"fullstack","Fullstack",[264,265,266,267,268,269,270,271,272,273,274,275],{"key":220,"name":221,"field":261},{"key":223,"name":224,"field":216},{"key":226,"name":227,"field":216},{"key":229,"name":230,"field":216},{"key":232,"name":233,"field":216},{"key":235,"name":236,"field":216},{"key":238,"name":239,"field":216},{"key":246,"name":247,"field":241},{"key":249,"name":250,"field":241},{"key":252,"name":253,"field":241},{"key":255,"name":256,"field":241},{"key":258,"name":259,"field":241},{"key":277,"name_tr":278,"name_en":278,"sort":279,"specializations":280},"devops-cloud","DevOps \u002F Cloud",4,[281,282,285,288,291,294,297],{"key":220,"name":221,"field":277},{"key":283,"name":284,"field":277},"aws","AWS",{"key":286,"name":287,"field":277},"gcp","GCP",{"key":289,"name":290,"field":277},"azure","Azure",{"key":292,"name":293,"field":277},"kubernetes","Kubernetes",{"key":295,"name":296,"field":277},"terraform","Terraform",{"key":298,"name":299,"field":277},"linux","Linux",{"key":301,"name_tr":302,"name_en":302,"sort":303,"specializations":304},"ai-engineer","AI Engineer",5,[305,306,307,310],{"key":220,"name":221,"field":301},{"key":226,"name":227,"field":301},{"key":308,"name":309,"field":301},"llm-rag","LLM\u002FRAG",{"key":311,"name":312,"field":301},"mlops","MLOps",{"key":314,"name_tr":315,"name_en":316,"sort":317,"specializations":318},"database","Veritabanı","Database",6,[319,320,323,326,329],{"key":220,"name":221,"field":314},{"key":321,"name":322,"field":314},"postgresql","PostgreSQL",{"key":324,"name":325,"field":314},"mysql","MySQL",{"key":327,"name":328,"field":314},"mongodb","MongoDB",{"key":330,"name":331,"field":314},"redis","Redis",{"key":5,"name_tr":6,"name_en":333,"sort":334,"specializations":335},"Mobile",7,[336,337,338,339,340],{"key":220,"name":221,"field":5},{"key":122,"name":123,"field":5},{"key":115,"name":116,"field":5},{"key":119,"name":120,"field":5},{"key":125,"name":126,"field":5},{"key":342,"name_tr":343,"name_en":344,"sort":345,"specializations":346},"security","Güvenlik","Security",8,[347,348,351,354,357,360],{"key":220,"name":221,"field":342},{"key":349,"name":350,"field":342},"appsec","AppSec",{"key":352,"name":353,"field":342},"offensive-pentest","Offensive \u002F Pentest",{"key":355,"name":356,"field":342},"cloud-security","Cloud Security",{"key":358,"name":359,"field":342},"devsecops","DevSecOps",{"key":361,"name":362,"field":342},"blue-team-incident","Blue Team \u002F Incident",{"key":364,"name_tr":365,"name_en":366,"sort":367,"specializations":368},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[369],{"key":220,"name":221,"field":364},{"key":371,"name_tr":372,"name_en":372,"sort":373,"specializations":374},"data-engineer","Data Engineer",10,[375],{"key":220,"name":221,"field":371},{"key":377,"name_tr":378,"name_en":379,"sort":380,"specializations":381},"game-dev","Oyun Geliştirme","Game Development",11,[382],{"key":220,"name":221,"field":377},{"key":384,"name_tr":385,"name_en":385,"sort":386,"specializations":387},"ml-engineer","ML Engineer",12,[388],{"key":220,"name":221,"field":384},[7,13,14],{"junior":391,"mid":393,"senior":394},{"questions":392,"median_sec":3},20,{"questions":392,"median_sec":3},{"questions":392,"median_sec":3},[9,396],"en",[398,399],"google","github",21750,true]