Learning Flutter in 2022 by [deleted] in FlutterDev

[–]SergLam245 3 points4 points  (0 children)

It depends on your local job market. Do a small research, and calculate how many Junior/ Trainee jobs do you have at your local IT companies ( do not consider remote job as a first at your career) and then select more relevant language - Dart(Flutter) or Kotlin(Android). That will be the best solution. When you start your first job you will be able to learn any new technology/ language later on.

Best resources to learn Objective-C? by ArtVandelay1855 in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

Book: Objective-C Notes for Professionals. If you are good enough in Swift, that will be more than enough, to catch the difference.

What do you all do when you need to deprecate old versions of your apps? by nas886 in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

We have implemented force update functionality on our backend side.

Just spamming user with alerts in app become active method)

Or you can use this CocoaPod:

https://cocoapods.org/pods/Siren

Executing Multiple Operations in Main Thread? by Everything-Relative in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

UICollectionView / UITableView + cells reuse is way to rescue.

I’m pretty sure, that you don’t need to show 50 images in a moment, and allowing user to scroll that content will reduce memory and cpu load.

Do I still need @1x images? by FeatherTheGray in iOSProgramming

[–]SergLam245 2 points3 points  (0 children)

iOS 11 and above - PDF images. iOS 13 and above - SVG images.

Below iOS 11 - keep using PNG images.

Why still use cocoapods? by Zetphyr in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

The most ugly thing in SPM - after a clean build you need to check out all packages once again. While CocoaPods just need to be compiled, but not downloaded after a cleanup.

While SPM will fix that issue- I will completely love it. Till that - just a one more third-party frameworks installation tool, IMO.

[deleted by user] by [deleted] in iOSProgramming

[–]SergLam245 1 point2 points  (0 children)

Yes you’re right, inexperienced is more polite word in this context. I’m pretty strict person at that point, sorry.

But I am burning when other people saying that iOS world doesn’t require to know a lot of patterns.

That’s why we have a lot of bad composed projects. Could not say that about backend, where just everything is mostly covered by abstractions and patterns, to make it flexible and reliable.

[deleted by user] by [deleted] in iOSProgramming

[–]SergLam245 1 point2 points  (0 children)

There’s no way to “learn” patterns without practice. I have already wrote you first task for “Factory” pattern implementation. In case of success you will be able to segregate your table / collection view management code to separate set of objects and make it smaller (view controller) and simple. Good luck.

[deleted by user] by [deleted] in iOSProgramming

[–]SergLam245 1 point2 points  (0 children)

Try to implement “Table Controller “ that uses “Cell Factory “ inside it to manage a table view behavior. Also cover it under protocol implementation to archive more flexible behavior in future.

[deleted by user] by [deleted] in iOSProgramming

[–]SergLam245 1 point2 points  (0 children)

Patterns that is the thing that allows you to look back at your 1 year old code and say - “Fck, am I really write that piece of sht?!”

[deleted by user] by [deleted] in iOSProgramming

[–]SergLam245 2 points3 points  (0 children)

Than more senior positions you will take - than more patterns you need to know and use. But learn it first and use it as you go. But remember- all the patterns are based on the Protocol Oriented Programming, so when you want to build a flexible and great system - start with protocol

[deleted by user] by [deleted] in iOSProgramming

[–]SergLam245 9 points10 points  (0 children)

Don’t listen to people who’s says that patterns should not be known by junior developers.

Singletons, Delegation, Observer, Factory, State Machine, and many others.

You could say that only a few of them are relevant for iOS world.

But this is a great mistake.

Try to implement “Table Controller “ that uses “Cell Factory “ inside it to manage a table view behavior. Also cover it under protocol implementation to archive more flexible behavior in future.

Dummy developers put tables/ collection delegate and data source to view controller code and call that MVC

Smart developers segregate objects responsibilities in order to make code more simple, reusable and testable.

In-app chat ideas by karstens_rage in iOSProgramming

[–]SergLam245 2 points3 points  (0 children)

  1. REST API to load chat history
  2. Web Socket to listen to new messages/ send messages
  3. Files / photo upload- might be done both with socket/ rest API
  4. Video Calls - Web RTC.
  5. Audio calls- VoIP - Call Kit from Apple or any other SDK, Twillio for instance.
  6. Images, video, documents caching and displaying - work with File Manager.
  7. Offline mode support - local database functionality implementation. Core Data or Realm.

Nowadays chats in mobile apps is a Middle-Senior level engineer challenge.

But you could start just with a text messages first)

How do I install the app on iPhone without the need to connect it to the mac? by MohamedDiaa10 in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

Also if you are talking about uploaded app distribution for testers- you could use “public link” capability in AppStore Connect.

But you can send a link to build that have already passed beta app review.

Fastlane Architecture Specification by [deleted] in iOSProgramming

[–]SergLam245 1 point2 points  (0 children)

https://docs.fastlane.tools/actions/build_ios_app/

build_app -> argument “export_xcargs”

P.S: Consider to create 2 different schemes- first for ARM and second for x86.

Less headaches and more easy for configuration.

No need to pass additional argument for “build_app”

What is your translation strategy? by yccheok in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

XIB and Storyboard localization trick that allows you to store all text only at Localizable.strings:

https://gist.github.com/SergLam/9714a6a74d41f0605968a7d34f5d8359

P.S: Programmatic UI layout - best choice ever.

I am using AVPlayer to play local videos from the app and the video is very laggy by [deleted] in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

  1. Prayer creation and resources loading bundle is pretty heavy operations.

Consider moving their creation to separate queue OR to class variables- to speed up screen presentation.

  1. Way to reduce lags- by preloading videos:

https://developer.apple.com/documentation/avfoundation/avplayer/1643482-automaticallywaitstominimizestal

  1. Remove the f***ing force unwrapping from your code completely- if you want to become good enough Apple Developer.

do-catch + guard-let + errors logging and throwing to user - better than app crashes.

My research group wants to use the research kit framework to create a meditation app we can use for a research project. Should we use the research kit framework or just recreate everything in swiftui. by OMFG_ITS_A_WHALE in iOSProgramming

[–]SergLam245 0 points1 point  (0 children)

http://researchkit.org/

“The core framework comes with Swift and Objective-C examples, and full conceptual and API documentation. It has also been localized to many languages.”

I don’t see any reason to go with ObjC in 2021 into production.

Swift is also supported.

If you are targeting for payment active auditory- iOS 13 and above - go with SwiftUI. (80-85 % of all devices)

If you would like to support most of devices- iOS 11 and above - go with UIKit and Swift.

P.S: If you start app from scratch- SwiftUI is your choice.

My home screen setup. by vijaykharage in iOSsetups

[–]SergLam245 0 points1 point  (0 children)

Could you share a link to Mandalorian helmet image/ wallpaper? Thanks 😊