Objective-C

Objective-C

Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.
Cyril  Parisian

Cyril Parisian

1619261520

Using Go in Native macOS Apps with MacDriver

MacDriver is a recent project aiming to enable interoperability between Go and Objective-C. This will make it possible to write macOS, and potentially iOS apps using Go, as well as reuse Go code in macOS apps written in Objective-C or Swift.

The foundation of MacDriver is the objc package, which is a Go wrapper around the Objective-C runtime. It enables accessing any class or convenience methods available in the runtime, which includes the possibility of creating or extending classes at runtime, just as you could do in Objective-C proper. The following is an example of how you can define and instantiate an AppDelegate class as required for any macOS and iOS app:

#interop #objective-c #macos #cross platform #development #news

Using Go in Native macOS Apps with MacDriver
Juanita  Apio

Juanita Apio

1618273860

The Objective-C Runtime — Want to See Some Weird Things?

iOS development is more focused on Swift-based code nowadays. But Objective-C is still there, and it won’t be removed for a long time. You’ve probably seen some ObjC code, and many of you are horrified when looking at it:

Brackets are everywhere. I’m not horrified by this. Maybe I should see someone about that.

Anyway, ObjC can be powerful and the ObjC runtime can make some crazy things. I’ll share some examples in this article.

#objective-c #swift #tips #ios-app-development #ios

The Objective-C Runtime — Want to See Some Weird Things?
Juanita  Apio

Juanita Apio

1618258560

Objective-C basics for Swift developers

Swift is a powerful programming language that was released at the WWDC 2014 as a replacement for Objective-C. But with many existing apps written in Objective-C still out there, knowing or at least having a basic understanding of Objective-C can be useful.

This post serves as a quick reference on Objective-C for Swift Developers who want to learn or look up Objective-C specifics.

#ios-app-development #objective-c #programming-languages #ios #swift-programming

Objective-C basics for Swift developers

Jim Walsh

1611921766

OBJECTIVE C VS SWIFT COMPARISON

Today we are talking about Objective-C vs Swift. Watch this video to learn their main differences and which one is definitely the best choice for new projects.

Objective-C was introduced in 1984 and used to be the main programming language for iOS and Apple OS X.
This is image title

If you haven’t used Objective-C before but are familiar with some object-oriented languages, then it would be relatively easy for you to learn.

Swift is a newer programming language developed by Apple. Swift was released back in 2014, and developers are still getting used to it.

This programming language is open source, which means it was built by both Apple developers and the open-source community.

Wondering which one should you choose? To pick up the right programming language for your project, let’s take a close look at the pros, cons, features, and differences of both programming languages.

#objective-c #swift #ios language

OBJECTIVE C VS SWIFT COMPARISON

Bruno Ricardo

1609057560

Make Your Own Haar Cascade Object Detector Using GUI In Windows

In this video, we look into How you build your very own custom object detector by making your very own Haar Cascade.

● DOWNLOAD LINK OF GUI :

Subscribe: https://www.youtube.com/channel/UCNs6a3HlrbYw7dSUEXk9W3A

#machine-learning #objective-c

Make Your Own Haar Cascade Object Detector Using GUI In Windows
Scott Hann

Scott Hann

1608030947

Add Live Chat Box / Messenger To A Website (No Coding)

Add real-time chat box in your website, How to add live chat box in a website. Hi! everyone, in this tutorial we will learn about how we can add a chat box in a website, so that we can chat with our visitors in real time.
And the cool part is, we don’t have to write any code. Isn’t it cool?

#ChatBox #LiveChatBox #Messenger

For more python fun project, feel free to visit our channel
https://www.youtube.com/c/Tech2etc/

#web-development #html5 #objective-c #firebase #javascript #programming

Add Live Chat Box / Messenger To A Website (No Coding)
Shreya Joshi

Shreya Joshi

1606383780

Palindrome Check In C++ With Source Code | Source Code & Projects

The Palindrome Check is a single-player game. This project is an interesting project. Here, the user can test whether the entered word is palindrome or not. If we enter a word, phrase, or sequence that reads the same backwards as forwards, then it is determined as palindrome. This whole system is in the C++ language.

Source Code :https://code-projects.org/palindrome-check-in-c-with-source-code/

Subscribe : https://www.youtube.com/channel/UCTcaqNZBMBrrtEXHxPne2bQ

#programming #objective-c

Palindrome Check In C++ With Source Code | Source Code & Projects
Shreya Joshi

Shreya Joshi

1605703200

Hotel Management In C++ With Source Code | Source Code & Projects

Hotel Management is based on the concept of recording the hotel’s details and their bookings. This whole system is in the C++ language. Also, the admin can perform all the tasks like adding, viewing, modifying, and deleting hotel room records and their booking. There’s no login system for this project.

Source Code : https://code-projects.org/hotel-management-in-c-with-source-code/

Subscribe : https://www.youtube.com/channel/UCTcaqNZBMBrrtEXHxPne2bQ

#objective-c #programming

Hotel Management In C++ With Source Code | Source Code & Projects

Aman Agrawal

1605155472

Cocoapods : What It Is And How To Install?

Cocoapod is a package dependency manager for Objective-C and Swift projects with XCode. Those Languages are used to make applications that run iOS, macOS, watchOS and tvOS. Cocoapods also acts as a coding hub to share your code with other people. That way we as a community of coders don’t have to “re-invent the wheel” to tackle problems that have already been solved.

Read on to know more about how you can install Cocoapods

https://www.loginradius.com/engineering/blog/what-is-cocoapods-and-installation/

#swift #objective-c #xcode #developer #progamming

Cocoapods : What It Is And How To Install?
Hollie  Ratke

Hollie Ratke

1602806400

How to Easily Switch Between Xcode versions

iOS 14 is here. If you need to install a new version of Xcode to test your application and you also need to keep the old version of Xcode for some reason, this article is for you.

Every time a new version of iOS comes out, we have to update our compiler to be able to test the new operating system of our application on a new iPhone.

I have worked on a couple of apps and the outlook is always the same: A new version of the operating system comes out and we have to update our Xcode, but our CI is configured with a previous version or maybe we have a library that is maintained by multiple developers and they use the same version of Xcode to be consistent across builds.

Regardless of the case, the solution is always to manually download all the versions we need and then pray to some god that nothing breaks with command-line build compatibility.

Is there an easier way?

The Easiest and Fastest Way

There is a tool called xcode-install that allows you to easily install and manage multiple versions of Xcode on your computer. Surely, you have heard of NVM (Node version manager) or RVM (Ruby version manager). This is something similar, but for Xcode.

Installation

Just run this in your terminal:

$ gem install xcode-install

Usage

Now it’s time to play around and start managing our Xcode versions.

List all available and installed Xcode versions:

xcversion list

Install a specific Xcode version:

xcversion install 12

#xcode #objective-c #ios #swift #ios-development

How to Easily Switch Between Xcode versions

Inspecting and Changing Visual Elements With LLDB and View Debugger

Have you ever added an element in an UIView and after checking in the simulator you realized that it was not what you were expecting?

Well, our beloved Xcode has a very useful feature for inspecting visual elements, which is called View Debugger. This feature can be activated while your app is running by clicking in the button indicated in the image below, located in the debugger bar.

Image for post

Getting to know the View Debugger

After clicking on the View Debugger button, Xcode will pause the execution of your application and capture the state of your current window.

A screen similar to the one below will appear for you. Let’s try to understand what Xcode is showing us.

#objective-c #swift #debugging #ios #lldb

Inspecting and Changing Visual Elements With LLDB and View Debugger
Sadie  Ratke

Sadie Ratke

1596350880

Compilation time that mixing Objective-C with Swift

My previous article describes how to use a DI pattern to reduce compilation time and make your code loosely coupled on a pure Swift project. Today, let’s dig into how the build system determines which files should be recompiled and find out the best way to reduce the compilation time when mixing Objective-C and Swift, your experiences are different from mine, but some useful tricks may be useful for you. If I have made something wrong, please fix me.

Summary

1\. The Context Of Swift Compiler
  1.1\. Swift Driver, Frontend jobs
  1.2\. Demo profiling of dependency analysis

2\. Compilation time
  2.1\. The bad cases of compilation time
  2.2\. The ways to fix compilation time issue

The Context of Swift Compiler

I only pick the related context of the Swift compiler as the basic required knowledge before you read this article.

Swift Driver, Frontend jobs

Swift’s compiler driver is a program that coordinates the compilation of Swift source code into various compiled results: executables, libraries, object files, Swift modules, and interfaces, etc. The driver is the program that’s run when you invoke swift or swiftc. This doesn’t actually compile anything itself; instead, it invokes other tools to produce the desired output. e.g. The frontend.

The frontend is the program that actually compiles code (and in interpreter mode, executes it via a JIT).The Xcode build system does lots of work after you tapping command+B, you can check it out on your Xcode report navigator(Command + 9). The first command is **swift -frontend**

Image for post

A normal Swift compilation starts off with as many frontend jobs as input files. Each invocation of the Swift frontend parses every file in the module but also has a particular file marked as the primary file. A job is only responsible for compiling its primary file, and only does as much work as it needs to compile that file, lazily type-checking declarations in other files in the module. For example, the following pic depicts the fronted jobs consist of Compiling Feature3.swift and PrivateModel.swift.

Image for post

These two files also treat as primary files. (swift -frontend -c -primary-file Feature3.swift) A frontend job emits diagnostics, an object file, dependency information, and a _partial module file. _The build system is responsible for generating these files specified by the Feature3-OutputFileMap.json file placing at /Users/vedon/Library/Developer/Xcode/DerivedData/DI-bgjyihycmgnhgmehdddbteazwwqm/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/Feature3.build/Objects-normal/x86_64 folder.

Image for post

The special "" entry is used for outputs that apply to the entire build. The pic below shows the content of Feature3-master.swiftdeps.

Image for post

#swift #objective-c

Compilation time that mixing Objective-C with Swift
Rhett  Bosco

Rhett Bosco

1596277740

Higher Order Functions in Objective-C

No, Your Eyes Didn’t Lie, the Title Is Not a Typo

You may have heard of functioning programming or higher-order functions, like mapfilterreduceflatMap, etc., for Swift. Trust me, if you start to use them in your projects today, you will love them. The approach to use functions as arguments in another function is so handy and succinct that it’s very addictive and hard to reject.

And, what about Objective-C? Are we able to take the same ideas or similar manners in it? Yes, we can. We can create an NSArray category and iterate each element of it to achieve an identical result. In this article, I’ll demonstrate how to create block based functions for mapfilterreduce and flatMap in Objective-C.

#swift #xcode #ios #objective-c

Higher Order Functions in Objective-C

Refine Objective-C Frameworks for Swift

Objective-C will be gradually replaced with Swift. Before that, there is a lot of opportunity to boost your Objective-C code embracing Swift. This article is the keynote of WWDC Refine Objective-C frameworks for Swift.

Summary

1. Provide richer type information
  1.1. Describe nullability to control optionals
  1.2. Nullability mistakes

2. Follow Objective-C conventions
  2.1. Use Objective-C generics for Foundation types
  2.2. Use Int for numbers
  2.3. Strengthen stringly-typed constants
  2.4. Specify initializer behavior
  2.5. Follow the error handling convention
3. Address missing APIs
  3.1. Fix missing APIs
4. Improve ergonomics in Swift
  4.1. Improve naming
  4.2. Improve error code enums

Provide richer type information

Describe nullability to control optionals

The picture below depicts the default generated behavior without nullability annotation.

By adding the nullability to make our code more robust.

Constant, Global function, Block using underscore qualifier, and it becomes optional or non-optional in Swift.

Nullability mistakes

The nonnull annotation was wrong when Objc returns nil for a value Swift thinks can’t be optional if you are using the NSString or NSArray on Objc side. You will end up with an invalid object and it’s hard to be noticed, because Objc method calls ignore nil, but in some cases, you’ll crash with a null pointer dereference or get other unexpected behavior.

The compiler doesn’t promise anything about what happens. So switching to Release mode or changing Xcode versions could change the symptoms of this kind of bug. Swift believes what Objc header that something can’t be nil, Swift doesn’t force-unwrap it, so you won’t see a crash at the place where it returned nil.

The Objc compiler and the clang static analyzer also check the nullability annotations.

Suppose you see some warnings or analyzer results, and can’t quite decide if they can actually happen.

null_unspecified, which makes Swift import the value as an implicitly unwrapped optional. If you not sure the API will return nil or not, use null_unspecified in case of some impossible seeming misbehavior sometime later.

#objective-c #wwdc-2020 #swift #c #programming-c

Refine Objective-C Frameworks for Swift
Sadie  Ratke

Sadie Ratke

1593082920

To the depth of @objc and dynamic in Swift

You must have come across @objc and dynamic keyword while coding in Swift. The compiler gives an error if you are not using @objc when it is needed. A developer may have a list of questions in mind :

  1. Where these keywords used?
  2. Why use @objc in a project which is purely in Swift? As it seems @objc is something related to Objective-C
  3. How methods behave with and without @objc behind the scene.
  4. Exact purpose of dynamic?
  5. Does dynamic also affects the time of execution of a program?

We are going to cover above in detail using a proper example.

“@objc”

Swift generates code that is only readable to other Swift code. But if we need to interact with the Objective-C runtime, we need to instruct Swift what to do. Here comes@objc to make swift code available to Objective-C. Have you ever wonder why to prefix @objc even if the code is written purely in Swift? The answer is, although you may have whole code in Swift there are some frameworks that use Objective-C runtime — UIKit is one of them. Simply we can say @objc means we want our Swift code (class, method, property, etc.) to be visible from Objective-C.”

You must have noticed that we need to add the prefix @objc for #selector(function) in case of adding target to Button, UITabGestureRecogniser or Timer. This is because the **Selector **is a C string that represents the name of the method at the runtime. For C string we have to invoke Objective-C runtime.


“dynamic”

Use of “dynamic” in Swift code requires when we want to use Objective-C dynamic dispatch. We may need this for KVO support or if we are doing method swizzling.

I am not going in detail of Method Swizzling as this is not in scope of this article. In simple words: Method Swizzling is the ability that Objective-C runtime gives us, to switch the implementation of an existing selector at runtime.

Note : As dynamic is Objective-C feature, we have to use @objc also when we use dynamic keyword.

#objc #ios #ios-app-development #swift #objective-c #programming-c

To the depth of @objc and dynamic in Swift