Tuesday, 4 April 2023

Backbase for iOS banking Apps

Backbase is an open-source, end-to-end digital banking platform that provides a comprehensive set of tools and services to help financial institutions build and deploy digital banking experiences. 


With Backbase, financial institutions can modernize their legacy systems, simplify their digital banking landscape, and deliver seamless, omnichannel experiences to their customers.
In this blog, we will explore the process of integrating Backbase with an iOS app and the architecture of a Backbase-powered iOS app.

BackBase Architecture 

There are three layers in backbone architecture


Platform Layer
 The processes which first interact with the customer come under the platform layer.(Login/Signup)

Digital sales Layer 

When the customer is successfully onboarded.

Digital Banking Layer 

Perform a transaction, check your balance, open any other special type of account then it is done in the Digital Banking Layer.







What BackBase offer 

  • Backbase provide prebuilt go ready app, Mobile SDK's and widget collection for customization/configuration for mobile application development.





  • Backbase mobile SDK and other development tool distributed via standard cocoa-pods distribution





Integrating BackBase with an iOS app

The integration of Backbase with an iOS app involves several steps:

Setting up the Backbase environment

The first step in integrating Backbase with an iOS app is to set up the Backbase environment. This includes installing the Backbase platform, configuring the Backbase components, and setting up the security and access controls.


Creating the iOS app

Once the Backbase environment is set up, the next step is to create the iOS app. This involves defining the app's functionality, designing the user interface, and writing the code that implements the app's features.

Connecting the iOS app to Backbase

The final step in integrating Backbase with an iOS app is to connect the iOS app to the Backbase platform. This involves writing the code that integrates the iOS app with the Backbase components, such as the Backbase API, the Backbase Portal, and the Backbase CMS.

Architecture of a Backbase-powered iOS app

A Backbase-powered iOS app has a modular architecture that separates the different components of the app into distinct, loosely coupled modules. This makes it easier to manage the app, update its components, and add new features as needed.

The following is a high-level overview of the architecture of a Backbase-powered iOS app:

Backbase API

The Backbase API is the main interface between the iOS app and the Backbase platform. It provides access to the core banking services and functions, such as account information, transactions, and payments.

Backbase Portal

The Backbase Portal is the administrative interface for the Backbase platform. It provides access to the Backbase configuration, security, and access controls, as well as to the Backbase CMS.


Backbase CMS 

The Backbase CMS is the content management system for the Backbase platform. It provides access to the content, media, and assets that are used to create and manage the digital banking experiences.

iOS app 

The iOS app is the client-side component of the digital banking solution. It communicates with the Backbase API to access the core banking services and functions, and with the Backbase CMS to access the content and media.


Backbase is a powerful platform for building and deploying digital banking experiences. By integrating Backbase with an iOS app, financial institutions can deliver seamless, omnichannel experiences to their customers, and by following the Backbase architecture, they can ensure that their app is scalable, flexible, and easy to manage. Whether you're looking to modernize your legacy systems, simplify your digital banking landscape, or deliver better experiences to your customers. 






Thursday, 6 September 2018

Record iOS App Flow on simulator apple script application

To show our App UI behaviour we generally use: 
1) App screen shots or
2) App flow recording.

App screenshot is easy to take as iPhone Simulator offer a simple way to capture a screenshot under the File tab (File -> Screen Shot) or cmnd+S.

To record app flow we generally use the QuickTime Player, select the area of simulator and start screens recording. For me, sometime it's hectic because it blocks that area of the screen to use for the system. If we use that area for any other window, that window will also record in recording, and we have to record our flow again. Don't you think it irritating?

So, Is it possible to record the simulator app flow without block of screen area? Yes, we can do that using a command line tool.

Screen simctl is a powerful command to control simulator using command line. So lets quickly record our app flow in the simulator.

open a terminal and write the following command:





Example:







It will start recording your simulator, now use your app so that flow can record.

Once you are done with app flow covered, press ctrl+C to stop recording. You recorded file will be saved at your defined path "/Users/username/Public/myAppFlow.mov".

Hope you enjoy it.

But, I am still not happy with it. The reason I am a lazy person, so I found it still painful to open terminal every time (if it's not open and open a new window or tab if it opened) and type the command and record it and then go to finder and see where is my recoding. 
In this case I mostly forgot to close the terminal after use it (You know I am a lazy person :))

So I like to automate or want an application that we can put in our dock and use it with one click for recording. What our app should do, let's create the use case and flow for that:

1: App should check if your simulator is open or not. 
2: If not opened, asked you to open the simulator first.
3: If the simulator is open, check for terminal is open or not 
4: If the terminal is not open, open new terminal window 
5: If the terminal is open already, open new tab in a terminal window so that previous running work does not effected.
6: Run the cmd line tool for video record.
7: User use app so it will record. Once you finish with app usage to record, There should be button to finish recording.
8: Close the terminal if we it was not previously launched.
9: Close the tab of terminal that we open for our command run.
10: Open the video recorded path in finder with the Default Quicktime player to view what we recorded.


To create such app for MacBook, Apple provides serious way. You can use Mac App using Xcode, can create Automator workflow or you can write and apple script application. I would prefer apple script for this type of App. Here is the Code for above mentioned use cases covered script. You can find code here on github project Simulator_record_script.


If you, new to Apple script, you can get some help with my previous Tutorial on apple script. 

So now, we have done with the Apple script code. Lets Export it as an application.
You can download it from here . 

It will show you warning that it harm your computer as it a script application. So you can goto my github project  and download the code source file open it in apple script editor. Once you feel it not have any privacy breaking code you can also export it as application and use it.

Put it in your dock and use for easy video recording of app flow in the simulator for your usage (client demo, GIF from video for GitHub repo, bug discussion of UI flow etc.)

Hope you enjoy it and it helps you in your work.

Tuesday, 24 October 2017

iOS 11/12 Debugging with Xcode 8/9 without upgrading to Xcode 9/10

Note: Download  iOS 12 support file from here and follow the same steps to achieve iOS 12 Debugging on Xcode 9.

Hello Everyone, as we all know new version of iOS (iOS 11) and Xcode (Xcode 9) launched by apple. To run on iOS 11, we need to upgrade our code with Xcode 9, but many of us do not want to upgrade our code to new Xcode 9 due to reasons like:

# Working on swift version below 3.0 and Xcode 9 will work only above 3.0
# Due to some compile time errors while running on Xcode 9.
# Need more time to fix build issue and conversion issue to run our code on Xcode 9.

Don't worry, there is another way to debug iOS 11 without upgrading to Xcode 9. You can use older Xcode 8 to debug iOS 11 device. You just need to follow the below steps:

Step 1: Download Xcode 9 (https://developer.apple.com/download/) & Install it. Do not replace the Xcode 8 while install, chose keep both rather than replacing the previous one.


Step 2: Find the installed Xcode 9.app file in application folder, and right click to icon and click Show Package Content.






Step 3: Go to Contents > Developer > Platforms > iPhoneOS.platform > DeviceSupport
or use the finder goto folder with path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
Here you will see iOS 11 Support file folder, copy it.







 Or you can download the support files from here iOS 11 Device support file

Step 4: Now, In Application folder, Right click on  Xcode 8 and click on show content packages.



Step 5: Go to Contents > Developer > Platforms > iPhoneOS.platform > DeviceSupport
or use the finder goto folder with path /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
Paste the Copied iOS 11 Support files folder here.




Once you paste it , confirm you have the iOS 11 files in device support of XCode 8.






Step 6: Restart the Xcode 8 and quite the Xcode 9,  now you can run your code on iOS 11 with Xcode 8.

Wednesday, 27 September 2017

iOS Layered Architecture


Hello Everyone, Hope you are all doing Good. I was planning to post some helpful swift, playground tutorials from long time. Before going deep in swift and swift playground, lets quick overview how our code communicate to iOS and hardwares. Lets knew about iOS Layered Architecture and iOS App lifecycle(may be will cover be in Next Blog).

Understanding a little about the technologies and tools contained in the SDK can help you make better choices about how to design and implement your apps.

Architecture of iOS is little bit same as MAC layered architecture but in iOS Apple replaced by MAC COCOA By COCOA Touch (Figure-1). Each of these layers is made up of a variety of different frameworks that can be used and incorporated into your applications.





At the upper most level iOS work as an mediator between the underlying hardware and the apps we create. Out app do not communicate to the underlying hardware directly.

Apps talk with the hardware through a collection of well defined system interfaces. These interfaces make it simple to write apps that work constantly on devices having various hardware abilities.

Lower level  layers: They gives the basic services which all application relies on
Higher level  layer: They gives sophisticated graphics and interface related services.

Apple provides most of its system interfaces in special packages called frameworks.
So what is this framework actually contains? - Framework is a directory that holds a dynamic shared library that is .a files, related resources like as header files, images, and helper apps required to support that library.

Every layer have a set of Framework which the developer use to construct the applications. Every version of iOS contains a set of frameworks. We can create our framework also and use them across multiple applications. But lets knew only about iOS framework now, we will learn creating our framework later :)

Lets know a little bit about each layer and see what frameworks it contains.

Cocoa Touch Layer


The Cocoa Touch layer contains key frameworks for building iOS apps. These frameworks define the appearance of your app. They also provide the basic app infrastructure and support for key technologies such as multitasking, touch-based input, push notifications, and many high-level system services. When designing our apps, we should investigate the technologies in this layer first to see if they meet our needs.

Frameworks contains: 

  • EventKitUI.framework - provides view controllers for presenting the standard system interfaces for viewing and editing calendar-related events.
  • GameKit Framework – implements support for Game Center which allows users share their game related information online
  • iAd Framework – allows you deliver banner-based advertisements from your app.
  • MapKit Framework – gives a scrollable map that you can include into your user interface of app.
  • PushKit Framework – provides registration support for VoIP apps.
  • Tweeter Framework – supports a UI for generating tweets and support for access the Twitter Services.
  • UIKit Framework – gives vital infrastructure for applying graphical, event-driven apps in iOS. Some of the Important functions of UI Kit framework:
    • Basic app management and infrastructure.
    • Multitasking support.
    • User interface management
    • Support for using custom input views that behave like the system keyboard
    • Support for sharing content through email, Twitter, Facebook, and other services
    • Support for Touch and Motion event.
    • Cut, copy and paste support and many more.
  • Newly introduce Framework
    • Message UI Framework.
    • AddressBookUI framework
    • Notification Center Framework


Media Layer

It is the second layer from the top of the stack. It provides the iPhone OS with audio, video, animation and graphics capabilities. As with the other layers of the iPhone OS stack, the Media layer comprises a number of frameworks that can be utilised when developing iPhone apps.

Frameworks contains  We can divide it into three parts:

  1. Graphics Framework:
    • UIKit Graphics – It describes high level support for designing images and also used for animating the content of your views.
    • Core Graphics framework – It is the native drawing engine for iOS apps and gives support for custom 2D vector and image based rendering.
    • Core Animation – It is an initial technology that optimises the animation experience of your apps.
    • Core Images – gives advanced support for controlling video and motionless images in a nondestructive way
    • OpenGl ES and GLKit – manages advanced 2D and 3D rendering by hardware accelerated interfaces
    • Metal – It permits very high performance for your sophisticated graphics rendering and computation works. It offers very low overhead access to the A7 GPU.                                                                                                                                                                                                                           
  2. Audio Framework:  
    • Media Player Framework – It is a high level framework which gives simple use to a user’s iTunes library and support for playing playlists.
    • AV Foundation – It is an Objective C interface for handling the recording and playback of audio and video.
    • OpenAL – is an industry standard technology for providing audio.                                                                                                                                                                                          
  3. Video Framework

    • AV Kit – framework gives a collection of easy to use interfaces for presenting video.
    • AV Foundation – gives advanced video playback and recording capability.
    • Core Media – framework describes the low level interfaces and data types for operating media.



Core Services Layer


It is the third layer from the top of the stack. The iPhone Core Services layer provides much of the foundation on which the above layers are built. It provide Peer-to-Peer Services, iCloud Storage, Block Objects, Data Protection, File-Sharing Support, Grand Central Dispatch, In-App Purchase, SQLite, XML Support features.

Frameworks contains:


  • EventKit Framework - The EventKit framework (EventKit.framework) provides an interface for accessing calendar events on a user’s device.
  • Accounts Framework - The Accounts framework (Accounts.framework) provides a single sign-on model for certain user accounts.
  • Address book framework – Gives programmatic access to a contacts database of user.
  • Cloud Kit framework – Gives a medium for moving data between your app and iCloud.
  • Core data Framework – Technology for managing the data model of a Model View Controller app.
  • Core Foundation framework – Interfaces that gives fundamental data management and service features for iOS apps.
  • Core Location framework – Gives location and heading information to apps.
  • Core Motion Framework – Access all motion based data available on a device. Using this core motion framework Accelerometer based information can be accessed.
  • Foundation Framework – Objective C covering too many of the features found in the Core Foundation framework
  • HealthKit framework – New framework for handling health-related information of user
  • HomeKit framework – New framework for talking with and controlling connected devices in a user’s home.
  • Social framework – Simple interface for accessing the user’s social media accounts.
  • StoreKit framework – Gives support for the buying of content and services from inside your iOS apps, a feature known asIn-App Purchase.
  • CFNetwork
  • System Configuration Framework


Core OS Layer:


This is the bottom layer of the hierarchy and is responsible for the foundation of the operating system which the other layers sit on top of. This important layer responsible to managing memory—allocating and releasing memory once the application has finished with it, taking care of file system tasks, handling networking, and other operating system tasks. It also interacts directly with the hardware.

Frameworks contains:


  • Core Bluetooth Framework - The Core Bluetooth framework (CoreBluetooth.framework) allows developers to interact specifically with Bluetooth low energy (LE) accessories. 
  • Accelerate Framework - The Accelerate framework (Accelerate.framework) contains interfaces for performing digital signal processing (DSP), linear algebra, and image-processing calculations.
  • External Accessory Framework -The External Accessory framework (ExternalAccessory.framework) provides support for communicating with hardware accessories attached to an iOS-based device.
  • Security Services framework.
  • Local Authentication framework.
  • 64-Bit support from IOS7 supports the 64 bit app development and enables the application to run faster.

Below Core OS layer hardware layer exists. Hardware devices are managed by iPhone OS and provides the technologies needed for implementing native applications on the phone.

In next part we will cover App Life cycle using Process, Main,AppDelegate and Window interface.




Wednesday, 28 October 2015

UIImage Category( Resize+RoundCourner+Alpha) Swift version

For iOS developer, Resizing images, cropping them to a specific thumbnail size, applying rounded corners is extremely easy with Trevor Harmon’s Image categories UIImage Category. These category helped many developers to finish image implementation quickly and very easily in their projects.

After apple announcement, "Swift will become a successor of objective -C", mostly iOS app developer switching their development in swift language. As Trevor Harmon’s Image categories are written in Objective-C, so developer chose bridging concept to use these category features in the swift code.

Nowadays people bypass a bridging headache as they like to complete their whole project in Swift. It will be helpful for them if they found the category in swift so that they can easily use it and finish their projects within deadline with a smiling face. 

I have created a swift version of Trevor Harmon’s Image categories found in a Blog.  Also, I have added some new methods and extra features. Here is the link of Github of these category files.

https://github.com/Rupesh17/UIImage-Category-Swift

You can download them, use them directly without bridging headache like Objective-C version.

Modification or suggestion will be helpful to make it best.  In case, of any question or suggestion feel free to ask. Also, If you want any other helpful objective -C code in swift, let me know.