[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:mobile\u002Fmid":4,"config":212},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","mid","","tr",1977,2400,[13,7,14],"junior","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,159,172,186,199],{"id":129,"topic":73,"difficulty":130,"body":131,"options":132,"correct_key":137,"explanation":145},"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?",[133,136,139,142],{"key":134,"text":135},"a","Build'in en güncel derleyici sürümüyle derlendiğini doğrulamak.",{"key":137,"text":138},"b","İstenen her iznin, o izni kullanan çalışan ve ulaşılabilir bir kod yolu olduğunu doğrulamak.",{"key":140,"text":141},"c","Uygulama ikonunun önerilen piksel boyutlarıyla tam eşleştiğinden emin olmak.",{"key":143,"text":144},"d","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":147,"topic":73,"difficulty":130,"body":148,"options":149,"correct_key":140,"explanation":158},"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?",[150,152,154,156],{"key":134,"text":151},"Her gönderimden önce giriş ekranını tamamen kaldırmak.",{"key":137,"text":153},"Girişten sonraki ekran sayısını azaltmak.",{"key":140,"text":155},"İnceleyenlerin kilidi geçebilmesi için bir demo hesap sağlamak.",{"key":143,"text":157},"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":160,"topic":73,"difficulty":130,"body":161,"options":162,"correct_key":134,"explanation":171},"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?",[163,165,167,169],{"key":134,"text":164},"Rollout'u durdurmak ve etkilenen kullanıcılar için geri dönmek.",{"key":137,"text":166},"Daha hızlı çökme verisi toplamak için rollout'u hemen %100'e genişletmek.",{"key":140,"text":168},"İnceleme ekibinin etkilenen build'i reddetmesini beklemek.",{"key":143,"text":170},"Çö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":173,"topic":73,"difficulty":174,"body":175,"options":176,"correct_key":137,"explanation":185},"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?",[177,179,181,183],{"key":134,"text":178},"Yaklaşık 2.000 kullanıcı.",{"key":137,"text":180},"Yaklaşık 20.000 kullanıcı.",{"key":140,"text":182},"Yaklaşık 180.000 kullanıcı.",{"key":143,"text":184},"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.",{"id":187,"topic":73,"difficulty":130,"body":188,"options":189,"correct_key":143,"explanation":198},"019f677d-2b74-73e4-a623-dbba0c18c407","Yayından kısa süre sonra, bir ekip yeni yayınlanan bir özellikte kullanıcı şikayetlerine neden olan bir hata keşfediyor. Özellik bir feature flag arkasında gönderilmişti. Yeni bir build göndermeden sorunu azaltmanın en hızlı güvenli yolu nedir?",[190,192,194,196],{"key":134,"text":191},"Mağazaya acil bir yeni sürüm göndermek ve hızlandırılmış inceleme beklemek.",{"key":137,"text":193},"Kullanıcılardan işletim sistemlerini güncellemelerini istemek.",{"key":140,"text":195},"Bir sonraki planlanan sürümde özelliğin kodunu kaldırmak.",{"key":143,"text":197},"Kullanıcılar için özelliği devre dışı bırakmak üzere feature flag'i uzaktan kapatmak.","Özellik zaten mevcut build'de gönderilmiş bir flag ile kontrol edildiğinden, uzak flag'i kapatmak anındadır ve yeni bir gönderim gerektirmez. Yeni bir build göndermek yine inceleme süresi gerektirir; diğer seçenekler hatayı hızlıca çözmez.",{"id":200,"topic":73,"difficulty":130,"body":201,"options":202,"correct_key":137,"explanation":211},"019f677d-2b75-723e-a4e9-fb76f1417e7e","Bir ekibin yayın pipeline'ı, süresi dolmuş bir signing sertifikası hatasıyla imzalama adımında başarısız oluyor. Bu başarısızlığın en doğrudan sonucu nedir?",[203,205,207,209],{"key":134,"text":204},"Uygulama normal şekilde yayınlanır ama kullanıcılara bir uyarı bandı gösterir.",{"key":137,"text":206},"Geçerli bir sertifika olmadan yayınlanamaz ya da güvenilir sayılamaz.",{"key":140,"text":208},"Uygulama azaltılmış performansla yayınlanır.",{"key":143,"text":210},"Mağaza inceleme süreci otomatik olarak atlanır.","Süresi dolmuş bir signing sertifikası, güvenilir bir build olarak yayınlamayı\u002Fkurulumu tamamen engeller — bu kozmetik bir uyarı, performans sorunu ya da incelemeyi atlama yolu değil, sert bir kapıdır.",{"fields":213,"seniorities":389,"interview_shapes":390,"locales":395,"oauth":397,"question_count":400,"coach_enabled":401,"jd_match_enabled":401},[214,240,260,276,300,313,332,341,363,370,376,383],{"key":215,"name_tr":216,"name_en":216,"sort":217,"specializations":218},"backend","Backend",1,[219,222,225,228,231,234,237],{"key":220,"name":221,"field":215},"general","Genel",{"key":223,"name":224,"field":215},"go","Go",{"key":226,"name":227,"field":215},"python","Python",{"key":229,"name":230,"field":215},"java","Java",{"key":232,"name":233,"field":215},"csharp","C#\u002F.NET",{"key":235,"name":236,"field":215},"nodejs","Node.js",{"key":238,"name":239,"field":215},"php","PHP",{"key":241,"name_tr":242,"name_en":242,"sort":130,"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":174,"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":215},{"key":226,"name":227,"field":215},{"key":229,"name":230,"field":215},{"key":232,"name":233,"field":215},{"key":235,"name":236,"field":215},{"key":238,"name":239,"field":215},{"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},[13,7,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]