QuickNotes App Privacy Policy

Privacy Policy and Terms of Use

This policy applies to all information collected or submitted on QuickNotes App for iPhone (currently supported device) and any other device.

Information We Collect

No personally identifying information is gathered and/or stored about you. All data remains on your device. The app doesn’t communicates with the servers.

The privacy policy may be updated from time-to-time if required to support new app features. It is your responsibility to check it periodically.

Contact

If you have any questions regarding this privacy policy, you may email yugantar.jain@icloud.com.


Running multiple scripts and configuring for projects using CocoaPods

Travis CI logo taken from Docs

Hi,

In this article, I’ll share how to configure the .yml file of Travis in your Xcode project directory to make it run the test suite of your app automatically, run multiple scripts, and build and test projects that are using CocoaPods.

Note: this article assumes that you’ve already set-up travis in your repository and have the .travis.yml file

1. Starting point

Initially, your .travis.yml file may look something like this —

This Travis configuration would be sufficient to build your Xcode project and run the tests. …


Implementing Sign in with Apple and using your backend’s callback API

Sign In screen, Mentorship iOS app

Hi everyone,

In this article, I’ll share how to implement Sign in with Apple in a SwiftUI project. As of now, the Sign in with Apple button and user interface flow is available for implementation only using a view controller in UIKit.

Hence, we’ll create a SwiftUI view for the Sign in with Apple button using UIViewRepresentable, and use the ASAuthorizationController by creating a new class and initialising it in our observable model class.

Note: To implement Sign in with Apple, you’ll need the Apple Developer membership account.

Okay, let’s go step-by-step —

1. Setup your project and developer account

To enable Sign in with Apple in…


Using UIViewRepresentable to show Social Sign-In Buttons and Interface

Photo by Maxwell Nelson on Unsplash

Hi everyone,

In this article, I’ll share how to implement “Sign-in with Google” (or some other social login) in a SwiftUI project.

As of now, the social login button and flow is only available for implementation using a view controller in UIKit. Hence, we’ll create SwiftUI views for them using UIViewRepresentable to implement the functionality in our project.

We’re specifically implementing Sign-in with Google, however, the concept remains the same to implement other providers too (eg. Sign-in with GitHub).

Okay, let’s go step-by-step —

1. Install required dependencies and set-up project

Please visit the official Google documentation website…


Get automatic hide/show on scroll, clear and cancel button, and search key in the keyboard.

Photo by Kaspar Allenbach on Unsplash

Hi everyone,

In this article, I share how to properly implement a search bar in a SwiftUI app by wrapping the UINavigationController.

This approach gives us the advantage of achieving all the expected behaviours including automatic hide/show on scroll, clear and cancel button, and search key in the keyboard among others.


Subclassing URLProtocol to mock URLSession network requests

Photo by Alina Grubnyak on Unsplash

Hi,

In this article, I share a neat method to unit test networking code in Swift; where we’ll implement mocking of URLSession network requests without having to build loads of mock classes for each API.

Purpose of Mocking Network Requests

While unit testing networking code, it is a standard industry best-practice to mock the network request and not actually communicate with the server.

There are many reasons for this, some of which are listed below-

  • Unit Tests are supposed to be fast and reliable. Actually communicating with the server won’t only make the unit tests extremely slow, but…


Simple and robust implementation of infinite scrolling in SwiftUI

Background by Víctor Elvira Ávalos on Unsplash. SwiftUI logo by Apple.

Hi everyone,

In this article, I’ll be sharing a simple and robust method to implement an infinitely scrolling list in SwiftUI with the help of Combine.

Pagination and the role of an infinitely scrolling list

Pagination is a technique that is implemented in backend APIs to save network load by returning only a small number of records divided in a page-wise manner.

For example, suppose an API returns the list of users of a system, there can be hundreds of thousands of users. Loading all the users at once won’t only make the network call incredibly slow, but will also waste data of the user. …


Avoiding retain cycles and building efficient views in SwiftUI

Hi everyone,

In today’s article, I share two important tips that I got directly from Apple engineers during my labs at WWDC20.

  1. Avoiding Memory Leaks: Avoid retain cycles caused by capturing of self in a closure in a class.
  2. Increasing efficiency of optional views in SwiftUI: Avoid using AnyView and use @ViewBuilder instead.

1. Avoiding retain cycles caused by capturing ‘self’ in a closure in a class

Swift uses Automatic Reference Counting (ARC) to manage its memory allocation and deallocation. This means that Swift automatically allocates memory to objects and then frees up that memory when the object is no longer in use (this is…


Using Generics and Protocols to write better code in Swift

Hi everyone,

In this post, I give a tour of how we’re using Generic programming in an open-source SwiftUI project (Mentorship iOS) to write better code for Networking and UI.

Mentorship iOS is an all-new app being developed for AnitaB.org Mentorship System as part of GSoC 2020. We have used Generics and Protocols to build reusable components for the following —

  1. Networking — we have built a Network Manager using Generics that can decode (serialize) any kind of JSON data returned by the server.
  2. Reuse Views — we have used Protocols to reuse views backed by different data models but having some…


Attending WWDC20 as a Swift Student Challenge winner

Image: Apple

Hello everyone,

This is the blog post for the fourth week of my GSoC’20 coding period. This week, our team decided to pause the development of the Mentorship iOS app to celebrate and attend WWDC20 to the fullest. Though I’ve still completed some tasks and implemented new functionalities :p

In today’s post, I’ll mainly talk about my experience of attending WWDC20, talking to Apple engineers during the labs, and having early access to the latest technologies and beta software.

Attending first-ever Dub Dub

It can be said that this was my first WWDC; I always watch…

Yugantar Jain

Apple Developer | Environmentalist

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store