Filter
Exclude
Time range
-
Near
visionkit's documentCamera ViewController has a built-in aspect ratio constraint that crops to 4:3 by default. took me a week to realize i could override it to capture full phone width for passport scans. now expiro catches edge text i was missing before. #buildinpublic #ios
1
14
Replying to @DrizzleORM
If Flutter draws for itself using Skia, then it’s doing the same kind of 'native' rendering that the iOS ViewController does. But because it creates its own native drawing layer, it’s the only option that can achieve pixel-perfect consistency across both iOS and Android. It can even do better than SwiftUI. You're truly a dumb web dev
3
653
Learn how to use SFSafariViewController in SwiftUI avanderlee.com/swiftui/sfsaf… 🎁 Wrap any UIKit view or viewcontroller ♻️ Write reusable components ✨ One of my favorite SwiftUI extensions: optional to boolean bindings #swiftlang #iosdev
6
1,358
الكلام ممكن يبقى كتير شوية بس ان شاء الله يبقى مفيد و هتلاقي كام نصيحة في العموم في الاخر شايفهم مهمين لو عايز ت skip و تروح لهم على طول💜 الكلام فيه عربي و انجليزي كتير، لو بتضايق من الاتنين مع بعض يبقى متضايقش نفسك و متكملش قراءة👌🏻 الكلام ال Technical هيكون موجه اكتر لل Software و تحديداً الموبايل، الامثلة اللي موجودة تنطبق اكتر على ال iOS Mobile Development ١- بذاكر بروفايل الشركة ١.١ (بدخل عندهم على Linkedin و بشوف البروفايل و ال products بتاعتهم و ديه خطوة المفروض تكون بتعملها قبل ما تقدم حتى) ١.٢ بحاول اشوف كام حد جوا و اعرف منهم الدنيا جوا عاملة ازاي بالطريقة (مبسألش حد انت بتاخد كام بشكل صريح) بسأله عن ال ranges ان امكن ١.٣ بسأل عن ال Benefits اللي موجودة، هيدوني لابتوب و لا لا و الحاجات بقى ال medical و ال social و ال work environment عاملة ازاي و خلافه ٢- Technical interview ٢.١ بكون مجهز عندي شوية حاجات على جنب زي Basics كده لازم و لا بد اذاكرها ، هي ممكن تتنسي ف عامل لكل واحدة منهم ال Document بتاعتها و يادوبك براجع عليهم - مثال في ال iOS مثلاً حاجات زي: - Concurrency - Types of init - ARC (Memory Management) - ViewController Life Cycle - App Life Cycle - Combine Operators - Access Modifiers ممكن يكون في حاجات تانية بس مش فاكرها و طبعاً الحاجات ديه ممكن تختلف من شخص للتاني ٢.٢ ببدأ اشوف الحاجات بقى اللي الشركة مركزة عليها يعني في مرة كان في شركة بتشتغل ب KMP و انا مكنش عندي خبرة فيها فذاكرتها قبل ما ادخل و فعلاً اتسألت فيها ٢.٣ اشوف بروفايل الشخص اللي هيعملي ال interview و اشوف لو في articles هو كاتبها، لو بيحب يتناقش في حاجة معينة؟ و اذاكر الحاجات ديه و اكون مجهز نفسي بيها ٣- بشوف ان مثلاً حاجة زي ال Mobile Track لا غني عن ال Clean architecture و هتتسأل عنه تقريباً في 95% من ال interviews و ده هيصحبه حاجات و اسئلة تانية زي الفروقات بين ال presentation patterns (MVC, MVP, VIPER, VIP) او ال MVI لو Android هتلاقي جواهم حاجات كتير مختلفة زي ازاي بتوظف ال Design patterns و بتستخدم ال SOLID ازاي؟ ال DI مثلاً و غيره و غيره ٤- ال UI Frameworks و ال rendering بيحصل ازاي على سبيل المثال يعني في ال iOS يُفضل يكون عندك Basics عن UIKit و معلومات كويسة عن SwiftUI على سبيل المثال ٥- طبعاً مدى معرفتك برقم ٣ هيصب في مصلحتك لو في System Design Interview و ده في الموبايل اعمل Search على ال Youtube و هتلاقي كذا حد عامل فيديوهات كويسة، متشوفش واحد بس و شوف كتير عشان ال interview ده محتاج تشوف كتير و تسمع كتير و تتناقش كتير قبل ال interview و كل ما تشوف افكار اكتر و ناس مختلفة كل ما هتفهم الموضوع بشكل أفضل ٦- لو في problem solving حاول ترجع امجادك بتاعت ايام الكلية و تحل شوية حلويين عشان تعرف تسد بس ٧- اخر interview هو ال Behavioral و ده في الغالب بيكون مع Manager جوا، ببص على البروفايل بتاعه و لو عرفت اسأل ناس جوا عنه بيبقى أفضل و أفضل و بحاول اركز على الحاجات اللي بيتكلم عنها في النهاية ال AI مفيد جداً طبعاً في كل ده و جزء انك ينفع تسجل صوت ده حاجة كويسة جداً لان انت ممكن تعمل زي mock interview مع ال AI و ده هيحسن فرصك اكتر و اكتر لكن متعتمدش عليه اعتماد كلي و دور بردو بنفسك و اقرأ من اماكن مختلفة خصوصاً لو مش عامل subscription كام نصيحة كده في الاخر، لو متعرفش حاجة قول انا معرفش و لو حاجة انت استنتجتها بناءاً على فهمك للموضوع، وضح ده بردو عادي، لو مش عارف تكون to the point ممكن توضح انك بتحب تدخل في التفاصيل و انه لو وصله اللي هو عايزه يوقفك عادي… الحياة مش بتتوقف على rejection ، كل interview بتدخله هو بيأهلك للي بعده و اللي بعده، جايز تكون جامد بس ملكش خير في الفرصة ديه، خليك مؤمن بربنا ثم بنفسك و بالتوفيق💜💜
رجالة بتحضروا للأنترفيوهات إزاي، افيدونا بتريكات
2
14
110
6,757
SwiftUIでコード書く時、~画面と呼ばれるようなやつは「xxScreen」と命名するようにしている。ViewControllerの時は分かりやすかったけど、いまはぜんぶSwiftUI.Viewなので、命名で分かるようにしておかないと (protocolを独自につくってもよいけど
26
8,285
لو شغّلت الـ Business Logic زي الحسابات، الـ Validation، أو الـ Data Transformation جوه الـ UI سواء كانت Activity في Android، او Component في React، او Viewcontroller في ios ،انت كدا حكمت على الـ Codebase بتاعك بالانهيار ❗ ​كلنا بنستسهل في الأول، بس بندفع الثمن تأخير ومشاكل في الـ Maintenance. الفرق بين الـ Junior والـ Senior هو الـ Separation of Concerns. ​ليه لازم تفصلهم ⤵️ 1. Testability: هتعرف تعمل Unit Test للمنطق بتاعك من غير ما تحتاج تفتح App أو Browser. 2. Reusability: نفس الـ Logic يشتغل Mobile، Web، وحتى CLI. 3. Refactoring: لو غيرت الـ UI، الـ Core بتاعك هيفضل سليم متهزش. ​الخلاصه عشان ترتاح ⤵️ ​✅ Domain Layer: قلب السيستم Entities & Use Cases، ممنوع يعرف أي حاجة عن الـ Framework. ✅ Repositories: وسيط ذكي بيعرف يجيب الداتا منين API ولا DB من غير ما يتعب الـ Logic. ✅ Interfaces: عقود واضحة بتخلي الكود Decoupled. ✅ Dependency Injection: الطريقة اللي بتربط بيها كل ده ببعضه بمرونة ومن غير تعقيد. ​الـ Clean Architecture مش رفاهية ولا Over engineering.. دي استثمار في صحتك النفسية كـ Developer وفي مستقبل البروجكت. إيه أكتر حاجه غلط شوفتها في كود كان الـ Logic فيه داخل جوه الـ UI؟ 🤔
2
3
14
1,450
以前つくったSwiftアプリのソースをClaudeに見てもらった... MVC(というかほぼ Massive ViewController) むむむ
7
355
バナー部分以外のタッチは透過する UIWindow を最上位レイヤーに置けば、下層の UIWindow に表示される ViewController(UIAlertController など)にかぶせることは可能ですね(よい実装かは別の問題として)

バナーって、アクションシートの上に置けるんだ
1
2
1,618
I spent the whole of 2015 trying to grow an app I made. By the end of 2015 the app was still not growing and I was low on money. I could have kept going but I was thinking “Man I spent the whole year on this and I’m out of ideas to grow it. I think it’s time to go back to work” I interviewed at a company and they tell me they’re like a venture capital firm, but instead of giving money to start ups, they develop the software for a start up in exchange for equity. It sounded pretty interesting. They then told me they just started and haven’t found any start ups to work with. To keep themselves busy, they were working on their own app. It was called Hopsee. Hopsee was a mobile app to help you find someone to share a taxi with. You'd input where you wanted to go, and then someone else could join your ride and you could split the fare. This was kind of a shitty idea because taxis in Hong Kong aren’t that expensive. It was also shitty because it requires a lot of people using the app before there’s a match. Imagine being the fisrt pereson to use the app. You put in where you want to go, you wait and no one joins your ride. You then delete the app. In the interview a guy called Melvin told me he was developing the iOS app, but they also wanted an Android app. They wanted me to make the Android app. Me: Okay, I can make the Android app based on your iOS app. This was kind of a big claim from me, because at that point I had developed one Android app. Melvin: Great great, we’ve been trying for ages and ages to find an Android developer, but it seems there are very few in Hong Kong. What kind of salary are you looking for? At this point I should have said some crazy number. Instead I asked for $3800 USD a month and they agreed. On my first day I looked through the code and tried out the iOS version of Hopsee. Okay I get it, it’s really just a CRUD app with some Google Map views and chat features. They used Firebase for their backend. Firebase was kind of weird to work with but not that complicated. I liked it. I worked on the Android port for a few weeks and then Chinese New Year came around. In Hong Kong we get three days off for Chinese New Year, and 2016 was a good year because the three days off started on a Monday. That meant I got Saturday to Wednesday off work. On the Thursday after Chinese New Year I went into the office. When I got there Melvin was really excited about something. Melvin: Hey I spent Chinese New Year working on something. Me: What did you do? Melvin: You know on Firebase you can configure how long a user’s login session lasts? Me: Yeah. Melvin: We had it set to 30 days, and I thought, the shorter it is the more secure the app is. Me: Okay. Melvin: So I set the session time to one minute. Me: So the user has to login every minute? Melvin: Yeah, but that’s annoying right? Me: Yeah. Melvin: So what I did was, when the user logs in or registers, I save their username and password to a text file on the phone. Me: Alright. Melvin: Then I went through the code, and wherever we make a network call I added code to handle the case where authorisation has failed. If authorisation fails: 1. I grab the username and password from the text file on disk. 2. I do a login. 3. I retry the original network call. I was thinking “wow this is nuts”. I imagined he implemented what he described with a wrapper function like this. But he didn’t use a wrapper function, instead the network calls were inside the ViewController, and he had duplicated the retry logic around each network call. The way he did it wasn’t good, but I guess that doesn’t really matter because the whole idea wasn’t good either. There’s no point improving the implementation of a bad idea. It’s better to just delete the bad idea. Me: Adding this retry logic means the user never has to login again. It’s like we set the auth expiration time to infinity. Melvin: Yeah. Me: Why don’t we just set it to the max value in Firebase? Melvin: Hmmmm… We set the session expiration time to whatever the maximum was. I think it was ten years. Which is kind of funny because these events happened in 2016. If someone still has the app installed on their phone from 2016, they can try opening it to see if their session is still active. However I think the database has probably been deleted. The story happened in this room. I took this picture on the day we moved out of this office into a bigger office. I think I sat in the chair on the far left. It's kind of sad to see the office with all the equipment and people gone.
3
9
2,370
なんかやればやるほどVIPERのRの部分をViewControllerにすればいいんじゃないかと思えてきたよ
2
474
16 Dec 2025
iOS 26のSafe Areaの計算処理おかしくなってない?特にカスタムナビゲーションを利用している時に、子ViewController へ反映されていない気がする
1
1
3
444
I run a 2 TB home lab that’s my full-on replacement for cloud storage – all my photos, videos, and media live there. Being stuck in the Apple ecosystem (hearing aid compatibility keeps me here), my previous backup flow was ridiculous: every week I’d dump everything to iCloud, then pull it back down to my server… while paying ₹350/month just for iCloud to play middleman. Nothing on the App Store gave me true local-first, automatic backups directly to my own server – zero middleman, zero cloud dependency. I’ve never touched Swift or done any iOS development in my life.This morning I opened Antigravity, and in just 6 hours we went from “I don’t even know what a ViewController is” to a working prototype running on my phone.Absolutely insane.
locked in since morning to develop this prototype using antigravity since I don't know iOS development. context: I’m locked into the Apple ecosystem because of my hearing aid compatibility (a discussion for another day), but I needed a specific local-first backup tool that didn't exist. I have zero iOS dev experience. Still I decided to build it myself LLM. Locked in with Antigravity this morning, and in 4 hours we went from "I don't know Swift" to a working prototype running on my phone. The barrier to building your own accessible, custom tools is gone.
1
2
2
208
複雑なstoryboardのViewControllerをSPMでモジュール化してXcodePreviewで表示させてるんだぜぇ ワイルドだろぉ
12
794
10 Nov 2025
ViewControllerのview、うっかりviewDidLoad前にアクセスするとsuperview無い状態で色々進んでしまうので、ちゃんとisViewLoadedでguardするのが大事だ
1
2
774
6 Nov 2025
X appがMetaみたいにSafari ViewControllerを使わせないで色々制限して不便なので、クリップボードを共有するショートカットを作ってアクションボタンに割り振ることで、WebView使わなくてもするようにした
2
8
2,577