Programmer Ship
Programmer Ship
  • 34
  • 18 593
How to support Multi-Language in an iOS App - Swift, UIKit, XCode 15, 2024
Hello. In this video we are gonna see how to support multi-language in our iOS App.
Source-code link : github.com/vedat73/MultiLanguageTest
You are gonna see lot of things about programming in a simplified tutorials.
What do you waiting for to be a member of this ship.
You can support by subscribing : - ua-cam.com/channels/fcq3iPcolSeTRrazQBNUtg.html
#multilanguage
#localization
#swift
Переглядів: 2 792

Відео

How to create dynamic scrollable UILabel programmatically in Swift, UIKit, XCode, 2023 #shorts
Переглядів 495Рік тому
Hello. In this video we are gonna see how to make a UILabel scrollable fully programmatically. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to be a member of this ship. You can support by subscribing : - ua-cam.com/channels/fcq3iPcolSeTRrazQBNUtg.html #uilabel #scrollview #swift
SOLID Principles - Dependency Inversion Principle, DIP
Переглядів 83Рік тому
Hello. In this chapter we are gonna see the last SOLID Principle which is Dependency Inversion Principle also known as DIP. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to be a member of this ship. You can support by subscribing : - ua-cam.com/channels/fcq3iPcolSeTRrazQBNUtg.html #solid #dip #swift
SOLID Principles - Interface Segregation Principle, ISP
Переглядів 79Рік тому
Hello. In this chapter we are gonna see the fourth SOLID Principle which is Interface Segregation Principle also known as ISP. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to be a member of this ship. You can support by subscribing : - ua-cam.com/channels/fcq3iPcolSeTRrazQBNUtg.html #solid #isp #swift
SOLID Principles - Liskov Substitution Principle, LSP
Переглядів 231Рік тому
Hello. In this chapter we are gonna see the third SOLID Principle which is Liskov Substitution Principle also known as LSP. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to be a member of this ship. You can support by subscribing : - ua-cam.com/channels/fcq3iPcolSeTRrazQBNUtg.html #solid #lsp #swift
SOLID Principles - Open/Closed Principle, OCP
Переглядів 50Рік тому
Hello. In this chapter we are gonna see the second SOLID Principle which is Open/Closed Principle also known as OCP. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to be a member of this ship. You can support by subscribing : - ua-cam.com/channels/fcq3iPcolSeTRrazQBNUtg.html #solid #ocp #swift
SOLID Principles - Single Responsibility Principle, SRP
Переглядів 88Рік тому
Hello.This is Vedat from Programmer Ship. Today we are gonna start to learn SOLID principles. Solid principles are a set of rules that makes your code flexible, reusable, maintainable, testable and readable. If we want our code to be solid-friendly then we need to follow those set of rules. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to b...
How to create custom Tab Bar programmatically in Swift 5, iOS, UIKit, 2023
Переглядів 5 тис.Рік тому
Hello everyone. This is Vedat from Programmer Ship. Today we are gonna learn how to make a custom uitabbar fully programmatically in swift. We will also learn how to create custom shapes with UIBezierPath. At the end of this chapter you will be able to create your own curved shapes. Website Link for Curves : www.desmos.com/calculator/d1ofwre0fr Project Github Link : github.com/vedat73/CustomTab...
MASTERING SWIFT - copy on write
Переглядів 197Рік тому
Hi there ... This is the twenty-third chapter of the Mastering Swift Tutorial series. In this chapter we are gonna talk about copy on write feature in swift. We will also make an example that will show how to implement the copy-on-write feature to a custom object. Apple/Swift Github Account : github.com/apple/swift/blob/main/docs/OptimizationTips.rst#advice-use-copy-on-write-semantics-for-large...
MASTERING SWIFT - concurrency, parallelism, dispatch queue, operation queue
Переглядів 219Рік тому
Hi there ... This is the twenty-second chapter of the Mastering Swift Tutorial series. In this chapter we are gonna talk about concurrency and parallelism. When you’ve multiple tasks or threads that must be done as soon as possible. Concurrency is a good option. Because when a certain task has available time, we can use that time for doing another task. If your device processor has multiple cor...
MASTERING SWIFT - closures
Переглядів 157Рік тому
Hi there ... This is the twenty-first chapter of the Mastering Swift Tutorial series. In this chapter we are gonna talk about closures in swift. Closures are self-contained blocks of code that can be used in the application. We can think about it as a type that contains a block of code. Closures can also contain parameters and are able to return a value. 00:07 what is closure ? 00:28 how to def...
MASTERING SWIFT - custom subscript,dynamic member lookup
Переглядів 132Рік тому
Hi there ... This is the twentieth chapter of the Mastering Swift Tutorial series. In this chapter we are gonna talk about custom subscript in swift. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to be a member of this ship. You can support by subscribing : - ua-cam.com/channels/fcq3iPcolSeTRrazQBNUtg.html #customsubscript #subscript #swift
MASTERING SWIFT - error handling
Переглядів 176Рік тому
Hi there ... This is the nineteenth chapter of the Mastering Swift Tutorial series. In this chapter we are gonna talk about error handling in swift. Error handling is also known as exception handling in some other languages. It is a very useful feature to create custom errors for undesirable situations. So we will have more control over our codebase. You are gonna see lot of things about progra...
MASTERING SWIFT - generic types
Переглядів 832 роки тому
Hi there ... This is the eighteenth chapter of the Mastering Swift Tutorial series. In this chapter we are gonna talk about generic types in swift. With generic types we can create an alias for a type and define it later. The compiler will look at the type definition at runtime. You are gonna see lot of things about programming in a simplified tutorials. What do you waiting for to be a member o...
MASTERING SWIFT - protocols
Переглядів 712 роки тому
Hi there ... This is the seventeenth chapter of the Mastering Swift Tutorial series. In this chapter we are gonna talk about protocols in swift. Protocol defines blueprints of methods or properties that can be applied by class or structures . It works like an interface in the other languages. Protocol is a powerful feature that is also used in swift standard libraries. When we conform to a prot...
MASTERING SWIFT - extensions
Переглядів 422 роки тому
MASTERING SWIFT - extensions
MASTERING SWIFT - inheritance
Переглядів 2422 роки тому
MASTERING SWIFT - inheritance
MASTERING SWIFT - Access Controls : open, public, internal, fileprivate, private
Переглядів 1282 роки тому
MASTERING SWIFT - Access Controls : open, public, internal, fileprivate, private
MASTERING SWIFT - Class vs Structure
Переглядів 832 роки тому
MASTERING SWIFT - Class vs Structure
MASTERING SWIFT - Functions
Переглядів 502 роки тому
MASTERING SWIFT - Functions
MASTERING SWIFT - for-in, while, repeat-while loops
Переглядів 942 роки тому
MASTERING SWIFT - for-in, while, repeat-while loops
MASTERING SWIFT - Collections : Set
Переглядів 412 роки тому
MASTERING SWIFT - Collections : Set
MASTERING SWIFT - Collections : Dictionary
Переглядів 432 роки тому
MASTERING SWIFT - Collections : Dictionary
MASTERING SWIFT - Collections : Array
Переглядів 472 роки тому
MASTERING SWIFT - Collections : Array
MASTERING SWIFT - Optional Types
Переглядів 612 роки тому
MASTERING SWIFT - Optional Types
MASTERING SWIFT - Enum
Переглядів 792 роки тому
MASTERING SWIFT - Enum
MASTERING SWIFT - Switch case
Переглядів 1072 роки тому
MASTERING SWIFT - Switch case
MASTERING SWIFT - if, else, else if
Переглядів 782 роки тому
MASTERING SWIFT - if, else, else if
MASTERING SWIFT - Tuples
Переглядів 622 роки тому
MASTERING SWIFT - Tuples
MASTERING SWIFT - Strings
Переглядів 672 роки тому
MASTERING SWIFT - Strings

КОМЕНТАРІ

  • @indomitabletr1834
    @indomitabletr1834 2 місяці тому

    eline sağlık kareşim,

  • @art-style7777
    @art-style7777 2 місяці тому

    Thanks for useful lesson

  • @nsd-z5d
    @nsd-z5d 3 місяці тому

    Thanks 🙏🏻

  • @anname6597
    @anname6597 3 місяці тому

    note: custom fonts don't work on LaunchScreens. Maybe this is why some people don't see their font in the list...

  • @MarkizBoneco
    @MarkizBoneco 4 місяці тому

    thank you for very interesting and useful video. We'll wait new ones. ✌

    • @programmership
      @programmership 4 місяці тому

      Thanks for support, there will be as soon as when I get a free time ...!

  • @mansoornisar6666
    @mansoornisar6666 5 місяців тому

    I don't see the .plist file for my project, however I added the custom font in Project -> Info tab -> Custom iOS Target Properties -> App Category -> Fonts provided by application, but this still did not show the fonts in Custom list

    • @programmership
      @programmership 4 місяці тому

      Hi, if you cannot see info.plist file within the project, please follow the instruction : # Go to project folder -> Target project -> Info tab. # In the Info tab, create a property called "Application Scene Manifest" . # Make sure there are two sub-properties within "Application Scene Manifest" . These are "Enable Multiple Windows" and "Scene Configuration" . These property can be left as default. # After adding "Application Scene Manifest" property, Info.plist file should be visible within your project files.

  • @programmership
    @programmership 5 місяців тому

    Note : If you cannot see info.plist file when creating a project from XCode, please follow the instruction : # Go to project folder -> Target project -> Info tab. # In the Info tab, create a property called "Application Scene Manifest" . # Make sure there are two sub-properties within "Application Scene Manifest" . These are "Enable Multiple Windows" and "Scene Configuration" . These property can be left as default. # After adding "Application Scene Manifest" property, Info.plist file should be visible within your project files.

    • @Uax101
      @Uax101 4 місяці тому

      I have these two sub-properties but still the info.plist was not "viewable". Here's what I did: Configure your target to include the font: Select your target in Xcode. Go to the "Info" tab. Expand the "Custom iOS Target Properties" section. Add a new key by clicking the "+" button. Set the key name to "Fonts provided by application" (if it doesn't exist already). This key is an array. Add a new item to this array. Set the value of this item to the exact name of your font file, including the extension (e.g., "CustomFont.ttf"). Ensure the font is in your target's "Copy Bundle Resources": Select your target in Xcode. Go to the "Build Phases" tab. Expand "Copy Bundle Resources". Make sure your font file is listed there. If not, click the "+" and add it.

    • @programmership
      @programmership 3 місяці тому

      @@Uax101 Thanks for your helpful reply ...

  • @DSBambharoliya
    @DSBambharoliya 7 місяців тому

    it's only for Lable's Localizations. what about of buttons ?

    • @programmership
      @programmership 7 місяців тому

      hi, thanks for your comment. Localization can be used for any string definition that you use in your application. So it's not only for label. You can also use it when you define a title for your button. For example: yourButton.setTitle("message".translated(), for: .normal) . This line will make your button title localizable as it does to label.

  • @vladislav2980
    @vladislav2980 9 місяців тому

    Work perfectly, thx

  • @ahmedrafaat1179
    @ahmedrafaat1179 10 місяців тому

    to everyone who was struggling after making all these steps and he still didn't see the font make sure that you created Fonts provided in application under key of Information property list not inside Application scene manifest in info p.list as exactly shown in the steps in this video and restart Xcode it will appear special thanks for this amazing tutorial.

    • @yuvrajbhaia2939
      @yuvrajbhaia2939 9 місяців тому

      im still not getting, am i supposed to do it the way they said or not?

  • @wordpressmagics2613
    @wordpressmagics2613 10 місяців тому

    Wow. It is one of the best vidoes about custom tab bar creation i ever saw. Thank you!

    • @wordpressmagics2613
      @wordpressmagics2613 10 місяців тому

      Can you please explain is there a way to show a 5px width x 5px height dot below the icon when it is selected. How to achieve so?

    • @programmership
      @programmership 10 місяців тому

      @@wordpressmagics2613 Thanks for your comment. I've created a function called setDotIndicator(for item: UITabBarItem?) . Functions body is like that: private func setDotIndicator(for item: UITabBarItem?) { guard let item = item else { return } if let itemList = self.tabBar.items, !itemList.isEmpty { itemList.forEach { item in guard let itemView = item.value(forKey: "view") as? UIView else { return } itemView.subviews.forEach { $0.removeFromSuperview() } } } guard let barItemView = item.value(forKey: "view") as? UIView else { return } let dotView = UIView(frame: CGRect(x: Int(barItemView.frame.size.width / 2) - 3, y: Int(barItemView.frame.size.height - 3), width: 5, height: 5)) dotView.layer.cornerRadius = 2.5 dotView.backgroundColor = .systemOrange barItemView.addSubview(dotView) } ################################################################## You can call this function in the MainTabBarController's viewDidAppear(_ animated: Bool) function to display dot view when it is visible. Function body will be like that : override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) if let items = self.tabBar.items, selectedIndex < items.count { setDotIndicator(for: items[selectedIndex]) } } ################################################################## also call this setDotIndicator function in the MainTabBarController's tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) function like that : override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { setDotIndicator(for: item) } this didSelect function is triggered when you click at one of the tabbar items. ################################################################## This is a quick solution to your answer. You can give more consideration to find a better solution. Hope it helps :)

  • @card1nal312
    @card1nal312 11 місяців тому

    Welcome back bro! 🎉❤👏🏻

  • @chovuse
    @chovuse Рік тому

    Thanks a lot for this tutorial, helped a lot !

    • @programmership
      @programmership Рік тому

      thanks for your comments. Glad to hear that.

  • @azhmanadam9786
    @azhmanadam9786 Рік тому

    you saved my day

  • @ahsanmurtaza6185
    @ahsanmurtaza6185 Рік тому

    Nobody explained this much. You're good.

  • @CodyTheBlackChickenSubscribe

    It refuses mine. I drag the file in and it doesn't have the green plus symbol

    • @programmership
      @programmership Рік тому

      Hello. Instead of dragging the font file, you can also add your font file by following steps: On your XCode project select your project root file -> right click -> add files to "yourProjectName" . A new window should be shown. In that window you can select your font file and add it. You must get the same result.

    • @CodyTheBlackChickenSubscribe
      @CodyTheBlackChickenSubscribe Рік тому

      @@programmership Let's hope that works thanks

    • @programmership
      @programmership Рік тому

      @@CodyTheBlackChickenSubscribe You’re welcome :)

  • @card1nal312
    @card1nal312 Рік тому

    Thank you bro! 🫂🤝🏼☺️

  • @toek08102535
    @toek08102535 Рік тому

    Thanks

  • @huyhoangvu3428
    @huyhoangvu3428 Рік тому

    great video

  • @card1nal312
    @card1nal312 Рік тому

    The best explanation! Thank you 👏🏻😀

  • @programmership
    @programmership Рік тому

    in this example, we also took a glance at the Open/Closed principle even I didn’t mention. We will see OCP in detail in the next chapter. Stay tuned…

  • @card1nal312
    @card1nal312 Рік тому

    That’s bro! Very helpfully information! 😊👏🏻

  • @ram0l
    @ram0l Рік тому

    Thank you a lot. 50 different explanations online but only yours work like a charm in newest setup.

  • @yungzed
    @yungzed Рік тому

    I still don't see my custom font in the dropdown bar after following the steps

    • @programmership
      @programmership Рік тому

      Hello. I hope you didn't missed the info.plist (1:35) and Font type : Custom parts (02:50) . Otherwise it must work

  • @musiniganesh
    @musiniganesh 2 роки тому

    Hello , very nice video about dynamic member lookup . First time i heard. Thank you so much

  • @programmership
    @programmership 2 роки тому

    Additionaly, to prevent a class or its property or methods to be overridden we can use final keyword before the definition. For examle : final class Father { ……. } We cannot derive a class from the Father class because of final definition. Another example : class Father { …. final func useCar() { … } } We cannot override the useCar method.

  • @mehmetdurmaz636
    @mehmetdurmaz636 2 роки тому

    So Good

  • @yapikredinecla9348
    @yapikredinecla9348 2 роки тому

    So good for learning Swift

  • @programmership
    @programmership 2 роки тому

    at 05:41 mistakenly I said "the print line was executed 5 times" . It must be 6 times. "number is 0" output was hidden in the top. If you want to run the print block 5 times you can change the initial value of the counter variable as 1 or just change the while condition as : while counter < 5

  • @mustafayukdem4242
    @mustafayukdem4242 2 роки тому

    Helal olsun Vedat

  • @alitasan4717
    @alitasan4717 3 роки тому

    Thanks that help a lot. You should more video like this.

  • @mehmetdurmaz636
    @mehmetdurmaz636 3 роки тому

    Awesome video about database

  • @masterwinsss
    @masterwinsss 3 роки тому

    Amazing video bro I will be wait for the NeXT one

  • @smtsez6923
    @smtsez6923 3 роки тому

    This is a great explanation. Thanks.

  • @ercanozguven6318
    @ercanozguven6318 3 роки тому

    Nice... I'm looking forward for new video

  • @karaktermeselesii
    @karaktermeselesii 3 роки тому

    Hi, I learn SSL thx for the video.

  • @programmership
    @programmership 3 роки тому

    in 04:08 I've said "...before response back to the server" . It must be ".. before response back to the client." . My mistake sorry...