Pull to refresh
68.07

Development for iOS *

Developing for popular mobile OS

Show first
Rating limit
Level of difficulty

How to add a card to Apple Wallet in React Native?

Reading time4 min
Views982

Mobile developers can use Apple Wallet and Google Wallet integrations for different types of apps.

Once we already wrote our own library for Apple Wallet in React Native because we couldn't find anything ready to use. But now that Google Wallet is fully released, it's time to update it.

Now, this library provides integration with both Apple Wallet on iOS and Google Wallet on Android. It allows you to add, remove, and check for existing passes on iOS, and add passes to Google Wallet on Android.

Read more

iOS Dev Skills. Performance Review

Reading time2 min
Views1.2K

CTO: Balancing Leadership and Architecture.

As a CTO, effective leadership goes beyond technical architecture. Conducting regular performance reviews is a crucial part of managing teams.

Note: The performance review schedule may vary depending on the specific
company's policies and guidelines.

For early-stage startups, lacking CTO expertise in conducting performance reviews is common. In my experience, I've tailored grades to encompass all aspects of professional iOS development, keeping project-specific needs in mind. Being the first in the team can offer significant growth opportunities. However, acknowledging any lack of people management skills and compensating through continuous growth is essential.

I've compiled my insights on structuring the iOS development department, conducting performance reviews, and most importantly, emphasizing the significant distinctions between developers' levels based on well-defined criteria.

Read more

6 Best Flutter Development Companies in the US 2023

Level of difficultyEasy
Reading time7 min
Views1.5K
Understanding the world of Flutter app development can be a challenging endeavor, especially for business executives seeking to create top-notch mobile applications. When it comes to choosing a Flutter development company in the US, finding a reliable and proficient partner is crucial for the success of your app. A wrong choice could result in wasted resources and a subpar app that fails to meet user expectations.

image

Read more →

How to set up Gitlab CI/CD with Fastlane for iOS-project on a Mac mini

Reading time8 min
Views2.8K

Hello, everyone! I’m Yaroslav Fomenko, Doubletapp iOS-developer. Since the end of May, my department colleague and I have been working on implementation, improvement, and scaling of CI/CD for our projects. In this article, we want to share a guide on preparing the Xcode project and setting up runners, scripts, and configs, as well as explain how CI/CD helps us.

To learn how and why we decided to use a Mac mini for CI/CD, click here.

Read more

CI/CD for iOS-projects: device or cloud? What’s better, Doubletapp’s take

Level of difficultyMedium
Reading time6 min
Views1.3K

Hey, Habr! I’m Yaroslav Fomenko, Doubletapp iOS-developer. After our IOS department deployed our CI/CD on a Mac Mini, we got an idea of scaling and encapsulating it. So we started researching ways to do it. First we thought of Docker, but there was neither enough info about it nor any other possible ways. In this article, we’ll look at all possible solutions we found for the deployment of Gitlab CI/CD on a device and in the cloud.

Read more

SwiftUI & ChatGPT. The world is changing. Again

Level of difficultyEasy
Reading time4 min
Views3K

Everything that follows from this point forward input prompts, followed by ChatCGP’s responses, complete with sample code in Swift.

> Hey ChatGPT, can you make a SwiftUI registration form with name, address and city fields?

Read more

Swift 5.7: Regex. Shorthands for optional unwrapping. Unlock existentials for all protocols

Level of difficultyMedium
Reading time3 min
Views1.1K

Swift 5.7: Regex. Shorthands for optional unwrapping. Unlock existentials for all protocols.

Shorthands for optional unwrapping. Improved type inference for complex closures. Better string parsing with Swift Regex. Creating a Regex with Regex literal. Creating a Regex using RegexBuilder. Unlock existentials for all protocols.

Read more

Building your own CLI with Swift Programming Language

Level of difficultyEasy
Reading time5 min
Views4K

Command-line interfaces (CLI) are a common way to use applications. In iOS, we usually use scripting languages like Bash or Ruby to build those CLIs and automate mundane tasks. The most popular CLI for app signing and build automation is, without a doubt, Fastlane, which was initially written in Ruby. Fastlane is a great tool, convenient and fairly easy to use, and a lot of effort came into building it.

However, there's a great chance you considered moving away from Fastlane to avoid learning Ruby and to lower the entry threshold for your developers. Setting up a Ruby environment could be quite tedious and require additional devs' expertise to write and support those scripts.

Explore how to build your own command line tools with Swift in this article.

Read more

WWDC22 hidden gems

Reading time6 min
Views1.5K

For iOS developers, WWDC is always something of a New Year. We are presented with so many new products, and sometimes you can get lost in them. Most of my colleagues are trying to be in touch by watching “Platform State of Union” and all “What’s new” sessions. The event basically provides an opportunity to developers a glimpse of the features to expect from the software part. When Apple has a conference like this one, they want to make sure they have enough time to get everything done. In order to do this, they need to be able to work at their own pace and not worry about how long it will take them to get something done.

This means that if you have a small project, it may not be that important but once you move into larger projects with more people involved, every second saved can be worth several dollars in terms of money saved or profit made by the company. The platform tightly integrates programming languages, frameworks, and tools. Everyone gains when these three complement one another. Customers receive a consistent experience, such as scrolling that feels right every time. And developers may devote more time and attention to what distinguishes the app.

And it’s fine, you don’t need to spend so much time for this other unpopular stuff. However, in these, not-so-popular videos as couple of them may be called as “hidden gems” because of the content or a beautiful presentation/structure. Let me show couple of them!

Read more

Creating a Weather Predictions App Using Flutter

Reading time13 min
Views6K

This article describes how to develop a real-time weather prediction app in Flutter using the Tomorrow.io Weather API. The app consists of a single screen that displays the current weather and a 4-day daily forecast for a specific location. We’re creating this prediction app on Flutter because it is an open-source UI development kit, which means it can be integrated beautifully into desktop and mobile apps across various platforms, making it scalable. 

Read more

Composable Contexts Architecture

Reading time5 min
Views2.3K

Let’s talk about app architecture and the approach I apply as an iOS software engineer in a few companies. My team and I were trying to build something solid without slipping into a dense swamp where following the rules distracts you from actual business domain code. As a result, we got something that works for us and good enough to be told from my point of view.

Read more

SwiftUI and MVI

Reading time5 min
Views8.4K

UIKit first appeared in iOS 2, and it is still here. Eventually we got to know it well and learned how to work with it. We have found many architectural approaches. MVVM, the most popular architecture in my opinion, has strengthened its position with the release of SwiftUI, while other architectures seemed to have some kind of problematic relationships with SwiftUI.

But what if I told you that Clean Swift, VIPER and other approaches can be adapted to SwiftUI. What if I told you that there are some modern architectures which might be as good as MVVM or even better.

We will talk about MVI.

Read more

React Native: The First Choice of Mobile App Developers and Businesses

Reading time5 min
Views2.7K
image

Let’s discuss why mobile app developers select React Native for application development over other cross-platform frameworks.

While few users continue to work with the Native development approach, those who want to succeed in their business have started exploring new opportunities. One such occasion in this technically advanced world is to turn toward cross-platform frameworks.

Out of 2.8 million apps available on the Google play store and 2.2 million apps in Apple App Store, there is a growing need for cross-platform applications. The significant advantage of a cross-platform mobile application is that it helps businesses save development costs. This is where React Native comes into action.

In the middle of this, if you are a businessman and thinking of hiring mobile app developers and there is a continuously running debate in your mind “React Native vs Native” then this post is for you.
Read more →

Confusing extensions in Swift

Reading time4 min
Views2.2K
This post is a little bit the information aggregator. If you find a mistake, you could write to me about it I really appreciate that. Have a nice read.

Example with JSONDecoder


What would happen if we run the following piece of code?

struct Test<T>: Codable where T: Codable {
    enum CodingKeys: String, CodingKey {
        case value
    }
    
    let value: T
    let info: String
}

extension Test {
    init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        self.value = try container.decode(T.self, forKey: .value)
        self.info = "Default init(from decoder:)"
    }
}

extension Test where T == String {
    init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        self.value = try container.decode(T.self, forKey: .value)
        self.info = "Custom init(from decoder:)"
    }
}

let data = #"{"value":"Hello, World!"}"#.data(using: .utf8)!
let object = try? JSONDecoder().decode(Test<String>.self, from: data)
print(object.debugDescription)

Try thinking for 5 seconds about the result.

The result
Optional(
    Test<String>(
        value: "Hello, World!", 
        info: "Default init(from decoder:)"
    )
)


Read more →

What App Stores can you consider except Apple App Store and Google Play Store? Here are 6 Alternative App Stores

Reading time3 min
Views6.5K

Recently Epic Games’ Fortnite was removed from the Apple App Store and Google Play Store. The main reason being Epics bypassing of in-app purchases instead of using the officially sanctioned system for both platforms. While it is still possible for you to download Fortnite directly, this large scale case brings to light the duopoly of Apple and Google in the mobile market.

For most developers, these two stores account for almost all of their revenue and userbase. While Epic Games will be fine to go without, for the time being, what about the other 99% of developers who rely on these two stores for distributing and monetizing their apps. In this article, we’ll provide some of the alternative stores available for both developers and consumers for finding or distributing apps.

For one reason or another, you may have found yourself wondering, ‘where are some other places I can go to find and download new apps and games for my mobile device’? Or ‘are there any other marketplaces for me to share my apps’?

Читать далее

Sberbank Online iOS testing

Reading time6 min
Views2.5K
Theory of testing is usually differs from practice. Today we want to talk about our practical experience in testing application's code which is used by millions of iOS users and about the difficult path that our team finished in order to achieve stable code.

Let’s imagine: the developers successfully convinced themselves and the business of the need to cover the code with tests. Over time, in the project were created more than a dozen thousand unit- and more than a thousand UI-tests. Such a large test base araised several problems, and we successfully found the solution for them.
Read more →

Here are the Most Popular Video Conference APIs To be Considered for your Mobile App

Reading time8 min
Views21K
As the world rearranges into virtualized societal norms, the most convenient and simplified interaction for businesses or socially has come from video-based apps. Extensive use of these conferencing apps is trending Post COVID-19 pandemic.
Statista.com has tracked the high number of video conference app downloads from AppStore and GoogleStore for the following
:
Video conferencing App / Country Hangouts Meet Houseparty Ms Teams Zoom
USA 30 8 11 4
France 23 30 16 2
Germany 15 26 11 17
Spain 64 2360 15 27
Italy 140 423 30 55

Read more →

Authors' contribution