Apple introduces Advanced Security features
Apple introduced three advanced security features focused on protecting against threats to user data in the cloud, representing the next step in its ongoing effort to provide users with even stronger ways to protect their data. With iMessage Contact Key Verification, users can verify they are communicating only with whom they intend. With Security Keys for Apple ID, users have the choice to require a physical security key to sign in to their Apple ID account. And with Advanced Data Protection for iCloud, which uses end-to-end encryption to provide Apple’s highest level of cloud data security, users have the choice to further protect important iCloud data, including iCloud Backup, Photos, Notes, and more.
As threats to user data become increasingly sophisticated and complex, these new features join a suite of other protections that make Apple products the most secure on the market: from the security built directly into our custom chips with best-in-class device encryption and data protections, to features like Lockdown Mode, which offers an extreme, optional level of security for users such as journalists, human rights activists, and diplomats. Apple is committed to strengthening both device and cloud security, and to adding new protections over time.
iMessage Contact Key Verification
Apple pioneered the use of end-to-end encryption in consumer communication services with the launch of iMessage, so that messages could only be read by the sender and recipients. FaceTime has also used encryption since launch to keep conversations private and secure. Now with iMessage Contact Key Verification, users who face extraordinary digital threats — such as journalists, human rights activists, and members of government — can choose to further verify that they are messaging only with the people they intend. The vast majority of users will never be targeted by highly sophisticated cyberattacks, but the feature provides an important additional layer of security for those who might be. Conversations between users who have enabled iMessage Contact Key Verification receive automatic alerts if an exceptionally advanced adversary, such as a state-sponsored attacker, were ever to succeed breaching cloud servers and inserting their own device to eavesdrop on these encrypted communications. And for even higher security, iMessage Contact Key Verification users can compare a Contact Verification Code in person, on FaceTime, or through another secure call.

Pic courtesy: apple.com
Security Keys
Apple introduced two-factor authentication for Apple ID in 2015. Today, with more than 95 percent of active iCloud accounts using this protection, it is the most widely used two-factor account security system in the world that we’re aware of. Now with Security Keys, users will have the choice to make use of third-party hardware security keys to enhance this protection. This feature is designed for users who, often due to their public profile, face concerted threats to their online accounts, such as celebrities, journalists, and members of government. For users who opt in, Security Keys strengthens Apple’s two-factor authentication by requiring a hardware security key as one of the two factors. This takes two-factor authentication even further, preventing even an advanced attacker from obtaining a user’s second factor in a phishing scam.

Pic courtesy: apple.com
Advanced Data Protection for iCloud
For years, Apple has offered industry-leading data security on its devices with Data Protection, the sophisticated file encryption system built into iPhone, iPad, and Mac. “Apple makes the most secure mobile devices on the market. And now, we are building on that powerful foundation,” said Ivan Krstić, Apple’s head of Security Engineering and Architecture. “Advanced Data Protection is Apple’s highest level of cloud data security, giving users the choice to protect the vast majority of their most sensitive iCloud data with end-to-end encryption so that it can only be decrypted on their trusted devices.” For users who opt in, Advanced Data Protection keeps most iCloud data protected even in the case of a data breach in the cloud.
iCloud already protects 14 sensitive data categories using end-to-end encryption by default, including passwords in iCloud Keychain and Health data. For users who enable Advanced Data Protection, the total number of data categories protected using end-to-end encryption rises to 23, including iCloud Backup, Notes, and Photos. The only major iCloud data categories that are not covered are iCloud Mail, Contacts, and Calendar because of the need to interoperate with the global email, contacts, and calendar systems.
Enhanced security for users’ data in the cloud is more urgently needed than ever before, as demonstrated in a new summary of data breach research, “The Rising Threat to Consumer Data in the Cloud,” published today. Experts say the total number of data breaches more than tripled between 2013 and 2021, exposing 1.1 billion personal records across the globe in 2021 alone. Increasingly, companies across the technology industry are addressing this growing threat by implementing end-to-end encryption in their offerings.

Pic courtesy: apple.com
For more information and to develop iOS Mobile Apps, Hire iOS Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”.
To develop iOS Mobile Apps, please visit our technology page.
Content Source:
- apple.com
iOS Web Push Notifications
Web Push, a multi-standard notification service for time-sensitive and high-priority events will be available for Safari 16 on macOS Ventura in October.
WebKit’s message alert service Web Push will soon be supported by WebKit for users of Apple devices, according to a tweet from Jen Simmons, a member of the Safari and Webkit web developer experience team.
Web Push is an opt-in notification service, which will require it to ask users for permission before sending notifications. No exact date was given for the release on macOS Ventura. It will be available for all users, with no Apple Developer Program membership required.
This addition comes ahead of the previous release date Apple announced, which had Web Push becoming available on its devices sometime next year. The announcement comes on the same day Safari 16.0 shipped for iOS, macOS Monterey, and Big Sur.
Web Push Allows Multiple Standards to Safari Notifications
Developers have been able to send push notifications on Safari for some time, but previously these followed a different standard.
The inclusion of Web Push support means Safari applications will now be able to send notifications with the same combination of web standards as other browsers. In other words, if a developer has coded notifications to web standards, they will no longer have to add additional lines of code or make any changes for their application to work in Safari.
Some standards that work with Web Push include Push API, Notifications API, and Service Workers. Web Push for Safari will use the same Apple notification service that powers Native Push on all iOS devices.
New end-point URLs will send notifications from subdomains of push.apple.com.
Web Push One Of A Number of WebKit Additions to Safari
WebKit is an open-source web browser engine used by many macOS, iOS, and Linux applications. In a blog post released, Simmons highlighted all the engine’s new features that will be available in Safari 16.0.
These include passkeys to provide an easy and secure way to log in, and container queries, which will allow developers to adjust the layout and styling of items on a website based on size, rather than the viewport and accessibility improvements.
A feature of particular interest for e-commerce companies is the addition of Merchant Token support in Apple Pay. This provides a “more efficient way to support recurring payments, support for multi-merchant payments, and a way to pay multiple merchants of record in one transaction”.
Safari 16 also supports Order Tracking, enabling online merchants to provide customers with detailed order and shipping information via Apple Wallet.
For more information and to develop iOS Mobile Apps, Hire iOS Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”.
To develop iOS Mobile Apps, please visit our technology page.
Content Source:
- searchenginejournal.com
iOS 16 – here’s all the new features for your iPhone
Apple launches its newest iOS update to all the developers around the world this WWDC22. It brings a whole bunch of new changes that not only make iOS look eye-candy-er, but also help users get more done.
If you aren’t a developer, still, keep scrolling to know the most-awaited powerful features you’re gonna enjoy with in the public release of iOS 16 this September.
1. Lock Screen gets much heed

Pic courtesy: medium.com
Apple gives never-before attention to lock screen customisation in iOS 16. This update, you can create depth effect for your portraits. i.e., the time appears behind your head on the wallpaper.
You can now add widgets directly on the lock screen. This helps you keep info like weather, activity rings, today’s events handy and not unlock your iPhone for everything.
Wallpaper gallery
Apple brings its new wallpaper gallery to iOS (similar to Apple Watch’s watch face gallery) that features productive wallpapers like astronomy, weather, slideshow etc.
Notifications

Pic courtesy: medium.com
Notifications now roll up from bottom so they don’t hinder your personalised wallpaper’s beauty.
Live tracking

Pic courtesy: medium.com
You can now track the live score of an ongoing match, food delivery order, workout etc. directly on the lock screen.
2. Focus gets much focus on iOS 16

Pic courtesy: medium.com
Focus gets more powerful with iOS 16. You can now schedule different focus-es throughout the day.
Plus, you can assign a focus mode to a wallpaper, so whenever you set it, the focus gets on.
Apps like Mail, Calendar, Messages, and Safari now integrate with focus to display you only the content that’s relevant to the focus i.e., if you turn on work focus, only work things get displayed.
3. iMessage gets big changes

Pic courtesy: medium.com
If you’re a bad typer, you’ve probably repented for your typos in important messages. Thankfully, iOS 16 understands you. It brings options to edit a message even after its sent.
You can also undo send, recover recently deleted messages, and mark messages as unread to come back later.
4. Dictation and Keyboard become brothers

Pic courtesy: medium.com
With iOS 16, you can type and dictate both simultaneously. Though this is a small change, it shows a massive impact on how you type emails or create word docs.
5. Live Text will now boast itself

Pic courtesy: medium.com
Live Text goes to next level in iOS 16. It could now translate and replace what’s written on that sign-board before you. It also boasts some handy features like currency conversion etc.
And, Live Text now arrives to videos too. So, if you’re a programmer, you can now pause a video to copy the code on the frame.
6. Visual Lookup meets AI and ML

Pic courtesy: medium.com
Visual Lookup now gets smarter. It can recognise animals, birds, statues and give you the ability to lift it up and copy without background and share the image in apps like Messages, Notes etc.
7. Apple Pay, Later

Pic courtesy: medium.com
Apple now brings Apple Pay Later to users in US. If you’re in the US, this will allow you to split an Apple Pay purchase into four equal payments spread over six weeks with zero interest or extra fees.
The new Apple Pay Order Tracking now allows you to track your orders paid via Apple Pay with participating merchants.
8. Maps looks beautiful

Pic courtesy: medium.com
Apple brings multistop routing which allows you to plan upto 15 stops in advance.
You’ll now get advanced transit features like
- knowing how much your journey will cost,
- add transit cards to Maps,
- view their balance,
- recharge them
without ever leaving Maps.
The street view is now supported in more than a dozen cities around the world.
9. Share Photos easily with the new iCloud Shared Photo Library

Pic courtesy: medium.com
The new iCloud Shared Photo Library offers an easy way to share photos with family. It can be collaborated with upto 5 people who have equal permissions to add, delete, edit photos.
This will especially helpful in vacations.
The photos can be set to automatically add by date, faces, and places without worrying about what photos to add. If you want to add a photo to a shared library as soon as it’s snapped, you can do it directly in the Camera app.
More amazing changes…
10. SharePlay-ing is now easier
SharePlay now comes to iMessage so you and your friends can enjoy your favourite content all while chatting together.
Not only that, you receive SharePlay suggested apps directly while on a FaceTime call so you don’t need to open the app to do that.
11. Safari gets more user-friendly
We’ve got tab groups with iOS 15. And with iOS 16, you can share and collaborate on them with friends and family.

Pic courtesy: medium.com
And, Passkey finally arrives to Safari. With this, you lose the need of storing or remembering passwords. You can easily login to supported websites by Face or Touch ID.
On non-Apple devices, just scan the displayed code with your iPhone, like you do for WhatsApp web, and you’re good to go.
12. Siri gets more convenient
On a FaceTime or phone call, you can simply say, “Hey Siri! Hang up.” to do it without lifting a finger.
13. Health becomes healthier

Pic courtesy: medium.com
The Health app can now track your medications and can also give alerts if there persist any harmful drug-drug interactions.
If you don’t have an Apple Watch, your iPhone can now fill the void, all standalone. It can almost accurately track your workouts. All you need to do is to put your iPhone in your pocket while working out.
14. Privacy is more valued

Pic courtesy: medium.com
With the new privacy tool called Safety Check, if you perceive risk from your domestic or intimate partner, you can revoke their access to your location and other data, and sign-out of iCloud on all other devices and limit messaging just to the device in your hand.
Overall, iOS 16 looks like a very useful update for all types of people, be it a busy CEO, a student, or a normal home maker. New amazing features never stop coming to iOS, right?
For more information and to develop iOS Mobile Apps, Hire iOS Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”. To develop iOS Mobile Apps, please visit our technology page.
Content Source:
- medium.com
How to improve the performance of your React Native App
React-Native(RN) apps suffer huge performance issues as compared to native apps. During initial development days, such challenges are ignored but as soon as the app grows developers find it difficult to improve. Sometimes, extreme calls to dump the RN app happen. We can escape such steps and you can easily improve the RN app performance, just with little effort.
There are multiple ways to improve RN app performance:
Basics of RN performance:
Hermes: A JS engine to optimizes app start time, reduce APK size, and memory footprints. Follow this guide to setup for your app.
Remove Arrow functions: Every render creates new instances of these functions. When passed to children, it will re-render the child components even when nothing has changed in them.
Simple Reducers: Reducers are just to dispatch store changes, not for complex code logic, avoid that as much as possible.
Use native driver: Enable useNativeDriver=true for all the animations that you use in the app.
Memoization:
React.PureComponent: This works for class components. It does a shallow comparison for the previous and new props, re-renders if they are not equal.
React.memo: Only functional components can leverage this functionality, and works similar to React.PureComponent. React.memo comes with an option to use a custom comparison function, to provide more control over it. For the child functional components use React.memo export const ChildrenMemoComponent = React.memo(ChildFunctionComponent) to memoize.
Whenever parent component props change children’s components are also re-rendered causing huge performance issues. This can be avoided either by using shouldComponentUpdate(), React.PureComponent, React.Memo. Memoization breaks if React creates new functions instances when child component is passed with callback functions from parents. New function instances are created with inline function calls, arrow functions, functions calls inside render. For function component use useCallback hook and for class component define functions outside render and pass references to children.
Memory leaks:
Debugger warnings and errors: You need to get rid of them, just enable debugging, remove (console.disableYellowBox = true) and fix all the warnings, promise rejections, key errors and other errors too.
Android Studio Profiler: Great tool to find memory leaks in the app. In the below image, the bottom section has lots of bin icons(white color icons) that when android running its garbage collector and repeated icons indicate memory leaks. Perform actions in your app, debug them and fix asap.

Android Studio Profiler
Pic courtesy: medium.com
React-DevTools: React Profiler provides in-depth component-level leak detection, though it supports RN version ≥ 0.57. Profiler API helps in optimizations like memoization, cost of rendering, sluggish code, re-renders. Go through the docs to check how to integrate it with your app.

Inspecting using React-DevTools
Pic courtesy: medium.com
Inspecting RN bridge: RN Bridge works asynchronously and converts javascript queries as JSON, finally calling the natives modules. We are leaving for you to check out how to do this, there are numerous great articles on this, We will write more on this later.
Stay updated:
Keep your libraries, React version updated to the latest stable versions:
React-native upgrade helper: RN community provides awesome documentation for upgrading RN versions. Major updates are between v0.60.0 and v0.63.0, there will be more errors you will need to fix. Do check out what’s new with v0.64 here.
Upgrade libraries & dependencies: A time-consuming process, during RN update also keep React in mind and upgrade accordingly, v17.0.0 has major changes. For every dependency you upgrade follow the below process:
- Package.json: Segment out the major and minor version upgrades using npm website, “^”(^2.1.2 will use releases from 2.1.2 to <3.0.0) and “~”(~2.1.2 will use releases from 2.1.2 to <2.2.0). For minor version just replacing the version name will do the work. For Major version upgrades check out the version release documentation for breaking changes.
- Code changes: After upgrading the version inside package.json make suitable code changes using Github document and release notes.
- Remove junk: This is also the right time to clean your app code. Try to remove unused codes, folders, files, and dependencies from package.json. Also, to reduce your assets, there is a great tool that does lossless compression, ImageOptim.
That’s 90% of your whole performance improvement job. There are other ways like amalgamation of native code and RN code but we will leave that for some other time.
For more information and to develop mobile application using React Native, Hire React Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”.
To develop a custom mobile application using React Native, please visit our technology page.
Content Source:
- medium.com
Pros and cons of React Native development in 2021
React Native, next to Flutter and PWA, was called a revolution in cross-platform app development and delivering great mobile experience.
Code repository that’s shareable between platforms? Reusable components? That definitely sounds tempting.
React Native has been praised for its “Learn once, write anything.” objective which means you get a native look and feel of your app for both iOS and Android, and you may also include platform-specific modules.
For a developer with an experience in JavaScript, and React itself, it is easy to take up React Native and start building on it right away.
Some time ago one of our React Native apps, Guild, went public. (Update: Guild has been recognized by Red Herring’s 2019 Top 100 European Startups.)
We’re extremely proud of how the app is turning out and we just can’t wait to write more of them. Our devs and some of our clients are fully aboard the React Native train and in this post, we will tell you exactly why is that: from a perspective of a business owner and a JavaScript developer. As well as some React Native advantages and limitations.
Is React Native the pick for your next app?
Build a product your users will love to use. Get a highly performant, native app for Android, iOS, and even the Web. Work with our developers and designers to squeeze the most out of your app idea and React Native.
Business Perspective on React Native
Unlike other cross-platform frameworks like Ionic, the Facebook team stresses they acknowledge the differences between different platforms and React Native reflects that. Therefore, you can still include modules specific for iOS and Android like status bars, navigation, or access to native elements like camera and contacts are built according to the platform.
Using libraries such as React Native for Web or ReactXP allows a developer to build a cross-platform app that runs on the Web too, so there’s no need to build separate apps at all. We used ReactXP in one of our projects and it really felt like we’re getting the Web version for free. That’s pretty amazing.
Note that using React Native DOES NOT mean you will not need any help from a native developer. If your app includes many different native features, some work on their side may be required.
Now, when it comes to a team building…
Your front-end web developer can actually become a mobile developer without a need of learning iOS’s Swift or Java/Kotlin for Android. With some knowledge about native UI elements, React, and some platform-specific patterns, React Native is easy to pick up. That is a game changer in terms of building a team as your app will require just one instead of two (or even three if you’re also to conquer the Web).
You can hire JS developers who will be able to deliver for all platforms. Therefore, it is much easier for them to exchange knowledge, conduct a code review, and understand the code. What a difference it makes in terms of time and cost! Not to mention that React Native is all about bringing agility of web development to cross-platform development, with native results.
About the performance…
Some may argue that nothing will surpass the performance of native apps. It may be even true, but products written with React Native are almost identical in how they perform. Sometimes even better. In his great article comparing Native iOS and RN, John Calderaio says:
"(According to) the data we collected through measuring both of the application's CPU, GPU, and Memory during the tasks in each of the four tabs, the apps are also almost identical in how they perform. (…) React Native, winning two out of three categories, comes in first place as the better performing platform."
Wrapping-up: Pros and Cons for Business
Pros:
- Time and cost efficiency
- Native look and feel of your apps
- Sharing the codebase for iOS, Android, and the Web (with ReactXP and React Native for Web)
- One team for multiple platforms
- Awesome performance
Cons:
- Need for an expertise from a native developer for some platform-specific modules
- It’s not fully cross-platform, single-codebase approach
If you’re looking for a framework that will let you build a great cross-platform mobile app, check out Flutter.

Pic courtesy: medium.com
Bloomberg is a great example of preformant app written with React Native. Image source belitsoft.com.
Developer’s Perspective on React Native
When you start working with React, typically you go with a bundler like Webpack and spend some time considering the right bundling modules for your app. React Native is different, and yet it works similarly to React. It comes with everything you need to just sit down and start writing your code.
Hot/Live reload (similar to Instant Run on Android) is a beloved, killer feature that allows a developer to see introduced changes right away without complete rebuilding of the app. You don’t have to constantly check the results of actions you take which greatly boosts productivity and saves time on compilation.
When it comes to scroll, animations, buttons, text inputs and others, React Native gives an efficient recipe that allows developers to conduct basic tasks easily. Component usage is heavily simplified in comparison to native development and it’s huge.
Adding native modules may not be a piece of cake though.
Whereas there are countless libraries to choose from for iOS and Android, React Native does not exactly shine here. The list of third-party libraries and components is quite long, but in many cases they leave a lot to be desired. When working on modules like device sensors or push notifications, there is a chance you may need some help from a native programmer.
Truth to be told, the Facebook team together with outside collaborators and thriving population of active users constantly work on React Native making it better every day with over 2500 commits from 500 contributors last year.
According to Sophie Alpert, Engineering Manager on React:
"We're working on a large-scale rearchitecture of React Native to make the framework more flexible and integrate better with native infrastructure in hybrid JavaScript/native apps."
Even if it may happen that you’ll need to hack some existing solution or write something from scratch, this will happen more and more rarely.
Wrapping-up: Pros and Cons for a Developer
Pros:
- You’re web AND mobile developer!
- Great productivity
- Easy setup
- Simplified usage of styling components
- Hot/live reloading feature
Cons:
- Need of hacking some existing solutions or creating new ones from scratch
- Documentation still needs an upgrade
For more information and to develop web application using React JS, Hire React Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”. To develop custom web apps using React JS, please visit our technology page.
Content Source:
- medium.com
iOS 14.2 is just released
Apple has just released iOS 14.2 and iPadOS 14.2. Below are the set of new enhancements and a list of the bug fixes that should help you decide to update your iPhone or iPad now or skip to the next one.
We would advise you to skip this update for your iPhone/iPad if the below info does not excite you or if you are not facing any issues with your device so far. Apple has a track record of battery issues with new updates, and this time might not be different than the previous ones. The current iOS 14.1 and iPadOS14.1 has good battery management.
Anyway, let’s jump to the list of changes.
iOS 14.2 includes the following improvements for your iPhone:
- Over 100 new emoji, including animals, food, faces, household objects, musical instruments, gender-inclusive emoji, and more
- Eight new wallpapers in both light and dark mode versions
- Magnifier can detect people nearby, and report their distance using the LiDAR sensor included in iPhone 12 Pro and iPhone 12 Pro Max
- Support for iPhone 12 Leather Sleeve with MagSafe
- Optimized battery charging for AirPods to slow the rate of battery aging by reducing the time your AirPods spends fully charged
- Headphone audio level notifications to alert you when audio level could impact your hearing
- New AirPlay controls to stream entertainment throughout your home
- Intercom support with HomePod and HomePod mini using iPhone, iPad, Apple Watch, AirPods, and CarPlay
- Ability to connect HomePod to Apple TV 4K for stereo, surround sound, and Dolby Atmos audio
- Option to provide statistics about Exposure Notifications, without identifying you, to participating Public Health Authorities
This release also fixes the following issues:
- Apps could be out of order on the Home Screen dock
- Camera viewfinder may appear black when launched
- The keyboard on the Lock Screen could miss touches when trying to enter the passcode
- Reminders could default to times in the past
- Photos widget may not display content
- Weather widget could display the high temperature in Celsius when set to Fahrenheit
- Next-hour precipitation chart description in Weather could incorrectly indicate when precipitation stops
- Voice Memos recordings are interrupted by incoming calls
- The screen could be black during Netflix video playback
- Apple Cash could fail to send or receive money when asked via Siri
- Apple Watch app may unexpectedly close when opened
- Workout GPS routes or Health data are prevented from syncing between Apple Watch and iPhone for some users
- Audio is incorrectly labeled as “Not Playing” in the CarPlay Dashboard
- Devices could be prevented from charging wirelessly
- Exposure Notifications is disabled when restoring iPhone from iCloud Backup or transferring data to a new iPhone using iPhone Migration
iPadOS 14.2 includes the following improvements for your iPad:
- Over 100 new emoji, including animals, food, faces, household objects, musical instruments, gender-inclusive emoji, and more
- Eight new wallpapers in both light and dark mode versions
- Magnifier can detect people nearby, and report their distance using the LiDAR sensor included in iPad Pro 12.9-inch (4th generation) and iPad Pro 11-inch (2nd generation)
- Scene Detection in Camera uses intelligent image recognition to identify objects within a scene and automatically improves the photo on iPad Air (4th generation)
- Auto FPS in Camera automatically reduces the frame rate when recording video to improve low light capture and to optimize file size on iPad Air (4th generation)
- Optimized battery charging for AirPods to slow the rate of battery aging by reducing the time your AirPods spends fully charged
- New AirPlay controls to stream entertainment throughout your home
- Intercom support with HomePod and HomePod mini using iPhone, iPad, Apple Watch, AirPods, and CarPlay
- Ability to connect HomePod to Apple TV 4K for stereo, surround sound, and Dolby Atmos audio
This release for iPadOS also fixes the following issues:
- Camera viewfinder may appear black when launched
- The keyboard on the Lock Screen could miss touches when trying to enter the passcode
- Reminders could default to times in the past
- Photos widget may not display content
- Weather widget could display the high temperature in Celsius when set to Fahrenheit
- Voice Memos recordings are interrupted by incoming calls
- The screen could be black during Netflix video playback
- Apple Cash could fail to send or receive money when asked via Siri
For more information and to develop iOS Mobile Apps, Hire iOS Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”. To develop iOS Mobile Apps, please visit our technology page.
Content Source:
-
- medium.com
What’s new in iOS 14
Apple in June 2020 introduced the latest version of its iOS operating system, iOS 14, which is set to be released this fall. iOS 14 is one of Apple’s biggest iOS updates to date, introducing Home screen design changes, major new features, updates for existing apps, Siri improvements, and many other tweaks that streamline the iOS interface.
First and foremost, iOS 14 brings a redesigned Home Screen that includes support for widgets for the first time. Widgets can be dragged from the Today view right onto the Home Screen and can be pinned in different sizes.
With a Smart Stack feature, the iPhone can use on-device intelligence to surface the right widget based on time, location, and activity. Each Home Screen page can display widgets customized for work, travel, sports, and more. The Today section where widgets are housed has also been redesigned, and there’s a widget gallery where users can choose new widgets from apps and customize those widgets.
Swiping all the way to the end of the app pages on an iPhone opens the new App Library, which is an interface that shows all of the apps on your iPhone to see everything at a glance. Apps are organized into your folder system, but there are also Apple-created folders like Suggestions and Apple Arcade that intelligently surface apps. New app downloads can be added to your Home Screen or kept in the App Library to keep your Home Screen cleaner.
New space-saving measures mean incoming phone calls and Siri requests no longer take over the entire screen. Phone calls (and FaceTime/VoIP calls) show up in a small banner on the iPhone’s display while activating Siri shows a small animated Siri icon at the bottom of the screen.
With a Picture in Picture mode, users can watch videos or talk on FaceTime while also using other apps at the same time, with FaceTime or a video playing in a small window that can be resized and relocated to any corner of the iPhone’s screen.
Siri is smarter in iOS 14 and can answer a greater range of questions with info pulled from across the internet, and Siri can also send audio messages. Keyboard dictation runs on the device, adding an additional layer of privacy for dictated messages.
Apple added App Clips to iOS 14, letting users take advantage of some app features without needing to download the full app. App Clips can let you do things like rent a scooter, purchase a coffee, make a restaurant reservation, or fill a parking meter just by scanning a code, with no need to download a full app.
Apple describes App Clips as just a “small part of an app experience” designed to be found in the moment it is needed. App Clips work through Apple-designed App Clip codes, NFC tags, or QR codes, and can also be shared in Messages or from Safari.
Let’s take a look at iOS 14’s new UIPageControl
- Background style
- Custom indicator image
- Custom indicator image at a specific index
- Infinite pages (new scrubbing behavior)
Background Style
We have a new styling option for our UIPageControl called BackgroundStyle. This is an enum with three values:
@available(iOS 14.0, *) public enum BackgroundStyle : Int { /// The default background style that adapts based on the current interaction state. case automatic = 0 /// The background style that shows a full background regardless of the interaction case prominent = 1 /// The background style that shows a minimal background regardless of the interaction case minimal = 2 }
The usage is quite simple. By default, it is minimal:
pageControl.backgroundStyle = .prominent
Note: When an interaction state is continuous, the background style changes automatically if you set backgroundStyle to automatic. I discuss interaction APIs later in this article.

Prominent style (new)
Pic courtesy: medium.com

Minimal style (old)
Pic courtesy: medium.com
Custom Indicator Image
Apple has introduced a new API to set a custom icon or image to our UIPageControl compared to the old circular icon.
I remember a lot of effort was dedicated to achieving this by writing a custom UIPageControl class. The property name is below:
/// The preferred image for indicators. Symbol images are recommended. Default is nil. @available(iOS 14.0, *) open var preferredIndicatorImage: UIImage?
The usage is quite simple. I have used SF Symbol for this demo:
pageControl.preferredIndicatorImage = UIImage.init(systemName: "heart.fill")

Pic courtesy: medium.com
Custom Indicator Image at Specific Index
/** * @abstract Returns the override indicator image for the specific page, nil if no override image was set. * @param page Must be in the range of 0..numberOfPages */ @available(iOS 14.0, *) open func indicatorImage(forPage page: Int) -> UIImage?
Do you remember the Yahoo Weather app that came pre-installed in your iPhone? It has the UIPageControl below where the first icon is a location icon that denotes the current location. The interesting part is they had this control from the very beginning. I always used to think about the implementation and effort required just to achieve this.

Yahoo Weather app UIPageControl screenshot
Pic courtesy: medium.com
Yahoo Weather app UIPageControl screenshot
Now it’s a piece of cake because iOS 14 has given us a new API with which you can set a custom icon for each index of your UIPageControl.
I have used SF Symbol for this demo:
pageControl.setIndicatorImage(UIImage.init(systemName: "location.fill"), forPage: 0)

Pic courtesy: medium.com
Just imagine the customization you can do with the power to set each icon and the user experience you can give to our user.
Below is an example where a custom icon is set to page control based on different rainy weather conditions.

Pic courtesy: medium.com
Infinite Pages (New Scrubbing Behavior)
With the new UIPageControl, you can set an infinite number of pages. Well, don’t create infinitely… but how cool is that?
The usage is quite simple. I have set it to 400 here for this demo:
pageControl.numberOfPages = 400
Prior to iOS 14, we could set any number of pages. So what did Apple do this year to improve scenarios like this?
Well, it has introduced a new API and completely new UX for handling this very issue.
Apple has provided a custom interaction for our new UIPageControl in iOS14 called InteractionState. It is an enum with two interaction types:
- Discrete
- Continuous
In iOS 14, the default value of UIPageControl’s interaction is continuous:
@available(iOS 14.0, *) public enum InteractionState : Int { /// The default interaction state, where no interaction has occured. case none = 0 /// The interaction state for which the page was changed via a single, discrete interaction. case discrete = 1 /// The interaction state for which the page was changed via a continuous interaction. case continuous = 2 }
You can change the interaction state to discrete by setting the property below to false:
/// Returns YES if the continuous interaction is enabled, NO otherwise. Default is YES. @available(iOS 14.0, *) open var allowsContinuousInteraction: Bool
You can also add an observer to change the value of the interactionState property and check the current interaction state with the property below:
/// The current interaction state for when the current page changes. Default is UIPageControlInteractionStateNone @available(iOS 14.0, *) open var interactionState: UIPageControl.InteractionState { get }
Below, I have shared GIFs of these two types of interactions. You can see that continuous interaction helps us to reach any index of our UIPageControl with a drag behavior. For the discrete interaction, we tap on it and we move to the next index one by one.

Discrete interaction
Pic courtesy: medium.com

Discrete interaction
Pic courtesy: medium.com
For more information and to develop iOS Mobile Apps, Hire iOS Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”. To develop iOS Mobile Apps, please visit our technology page.
Content Source:
- medium.com
- macrumors.com
What’s new in Swift 5.3
The Announcement
On the 25th of March Apple announced that the release process for Swift 5.3 has begun, it’s a major change since it will improve the overall language quality and performance, and will make Swift available for multiple platforms as Windows and Linux. But let’s see in detail whats new.
Enum Cases as Protocol Witnesses
Currently a class extending a protocol needs to match exactly the protocol’s requirements, for example if we write static requirements within a protocol:
protocol DecodingError { static var fileCorrupted: Self { get } static func keyNotFound(_ key: String) -> Self }
And then we try to conform an enum to our protocol, we’ll face the following error:

pic courtesy: medium.com
With SE-0280 this will no longer cause a compiling error.
Multiple Trailing Closures
Swift 5.3 finally introduced the possibility to use multiple trailing closures.
Some Background
First of all for those who don’t know what a trailing closure is, it’s a simple syntactic sugar that we can use when we have a closure parameter in a function:
func networkCall(parameter:Int, onSuccess:(Any)->Void) { //network call onSuccess("someNetworkResult") }
and we can simply call the function as follows:
networkCall(parameter: 1) { (result) in print(result) }
The problem
This is an amazing feature and allows us to write cleaner and easier to read code, however it’s currently limited only to the last parameter of a function as we can see in the following example:

pic courtesy: medium.com
The Proposed Solution
With SE-0279 we will be allowed to insert extra trailing closures, just by adding extra labels, therefore the following code will compile.
networkCall(parameter: 1){(progress) in print(progress) }, onSuccess{ (result) in print(result) }
A New Float16 Type
The last decade has seen a dramatic increase in the use of floating-point types smaller than (32-bit) Float. The most widely implemented is Float16, which is used extensively on mobile GPUs for computation, as a pixel format for HDR images, and as a compressed format for weights in ML applications. Introducing the type to Swift is especially important for interoperability with shader-language programs; users frequently need to set up data structures on the CPU to pass to their GPU programs. Without the type available in Swift, they are forced to use unsafe mechanisms to create these structures.
Multi-Pattern Catch Clauses
Currently swift allows only a single error type for each catch clause, that means that if we define the following enum
enum NetworkError: Error { case timeout, serverError }
Assuming someNetworkCall is a function that throws a NetworkError, and we want to handle both errors, we will need to write two separate catch clauses:
func networkCall(){ do{ try someNetworkCall() }catch NetworkError.timeout{ print("error") }catch NetworkError.serverError{ print("error") } }
With SE-0276 we will be allowed to handle both errors on a single catch clause, with the following code:
func networkCall(){ do{ try someNetworkCall() }catch NetworkError.timeout, NetworkError.serverError{ print("error") } }
Add Collection Operations on Noncontiguous Elements
Currently we can use Range to refer to multiple consecutive positions in a Collection, but there’s not a simple way to do this for discontiguous positions, based on some condition.
For example if we have an array of numbers from 0 to 15 and we want to get a sub range of the Array, let’s say with only even numbers, the language doesn’t provide any way to get it, or even to get a sub Array with elements with non contiguous positions, but we can only select a range of contiguous elements:

pic courtesy: medium.com
SE-0270 adds a super useful “RangeSet” Method that will allow us to get a subRange of all the indexes of the elements that satisfy a specific condition, therefore, if we want to get only even numbers from the previous array, the following code will work:
var numbers = Array(1...15) // Find the indices of all the even numbers let indicesOfEvens = numbers.subranges(where: { $0.isMultiple(of: 2) }) // Perform an operation with just the even numbers let sumOfEvens = numbers[indicesOfEvens].reduce(0, +) // sumOfEvens == 56 // You can gather the even numbers at the beginning let rangeOfEvens = numbers.moveSubranges(indicesOfEvens, to: numbers.startIndex) // numbers == [2, 4, 6, 8, 10, 12, 14, 1, 3, 5, 7, 9, 11, 13, 15] // numbers[rangeOfEvens] == [2, 4, 6, 8, 10, 12, 14]
Increase Availability of Implicit self in @escaping Closures when Reference Cycles are Unlikely to Occur
Currently in closures we need to use explicit self even in some cases where reference cycles are unlikely to happen, for example because we already captured self in the current closure:

pic courtesy: medium.com
To make our code compile we need to add explicit self to x in order to reference it.
Refine didSet
Semantics
Currently, if we have a property with a “didSet” observer, the getter to get the oldValue is always called, even if observer doesn’t contain any reference to the oldValue in its body, for example the following code
struct Container { var items: [Int] = .init(repeating: 1, count: 100) { //creates an Array of 100 elements didSet { print("value set")//oldValue never Accessed } } mutating func update() { for index in 0..<items.count { items[index] = index + 1 } } } var container = Container() container.update()
creates 100 copies of the array in the memory to provide the oldValue
, even though they’re not used at all, causing performance issues.
With SE-0268 the property getters will be no longer called if they’re not accessed within the didSet resulting in a performance boost.
class Foo { var bar = 0 { didSet { print("didSet called") } } var baz = 0 { didSet { print(oldValue) } } } let foo = Foo() // This will not call the getter to fetch the oldValue foo.bar = 1 // This will call the getter to fetch the oldValue foo.baz = 2
Where
Clauses on Contextually Generic Declarations
Currently a where clause on a member declaration can be used only by placing the member inside a specific extension, but this can sound confusing, let’s make an example.
Let’s say we want to extend the Array implementation to sort element of 3 different types, for which we want to define a different sorting logic.
Currently we would need to extend Array 3 times:
extension Array where Element == String { func sortStrings() { ... } //some specific sorting logic } extension Array where Element == Int { func sortInts() { ... } //some specific sorting logic } extension Array where Element: Equatable { func sort() { ... } //some specific sorting logic }
With SE-0267 we can implement that logic by simply adding the where clause to the function in a single extension:
extension Array where Element: Equatable { func sort() { ... } func sortInts() where Element == Int { ... } func sortStrings() where Element == String { ... } }
Synthesized Comparable
Conformance for Enum Types
Let’s say we want to define an Enum whose cases have an obvious semantic order, for example:
enum SchoolGrades { case F case E case D case C case B case A }
If we try to compare its values we got the following error:

pic courtesy: medium.com
What’s wrong here?
In order to compare two Objects, they need to conform the Comparable protocol:

pic courtesy: medium.com
looking at the warning this will generate a loop, since the < function will be calling itself, therefore we need to compare the rawValues so that we can finally compare our grades.

pic courtesy: medium.com
This, is just a simple case, and it adds a lot of boilerplate code.
With SE-0266 this will not be necessary and we don’t need any additional code to compare Enums.
For more information and to build a mobile APP using iOS, Hire iOS Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”. To develop your mobile APP using iOS, please visit our technology page.
Content Source:
- medium.com
SwiftUI vs Auto Layout: Pros and Cons of Each Approach
It’s been more than five years from its release date (September 2014) and Apple kept upgrading the language up to Swift 5, sometimes providing good features, sometimes just updating the Xcode IDE and Storyboards improvements.
Then, the SwiftUI language was presented at WWDC 2019 in June and it started becoming popular soon after. It looks like everybody loves SwiftUI.
There are many differences between the two, and even if we don’t have an expiration date for the legacy Auto Layout support, speculations and rumors whisper that SwiftUI will be the future of the UI/UX developing tools in iOS programming.

pic courtesy: medium.com
Auto Layout: From Scratch to Frameworks
The Auto Layout system was conceived by Apple in 2011 and as released to developers and supported in iOS a bit later.
Auto Layout bases its features on a system that is capable of adapting its rendering and appearance using constraints and rules defined by developers.
These rules specify whether or not views should appear larger, should shrink, should shift position coordinates, and more, making all UI components responsive and capable of adapting to screen sizes, resolutions, and different contexts.
SwiftUI: The New, Good, and Bad
The new SwiftUI has been conceived to reorder ideas on UI composition and developing.
If you look around, there are many frameworks, contexts, and technologies where the user interface is more “defined” than “composed”. Think about old XML based UI compositions, or even the HTML/CSS approach it’s basically declarative more than composed by using visual tools.
Declarative interfaces are popular in hybrid apps as almost all of them are developed using Flutter and Ionic.
Flutter uses declarative interfaces such as the old Sencha or the modern React native. In IONIC, the UI is pure HTML/CSS and it’s not much different.
Pros and Cons of Auto Layout and SwiftUI
Auto Layout and Storyboards are well-supported and well-known by developers.
We used Auto Layout so much during the year and we know how to approach the problem.
SwiftUI uses the same approach theoretically (SwiftUI is basically a different way to set Auto Layout-like constraints, it’s not a separate tool or a separate technology), but it’s fresh, new, and sometimes this has a negative impact on the developers’ experience.
SwiftUI looks cool and looks fast to code
Simple interfaces can be coded in zero to little time due to basic components that automatically integrate basic constraints and behaviors.
Storyboards and segues give you an idea of what you’re doing
SwiftUI is basically conceived to design a single view.
Xcode Storyboards is supported by custom views extensions
Xcode Storyboards is supported by custom views extensions via @IBDesignable decorators, SwiftUI needs time to become supported and integrated by custom tools developed by the community.
SwiftUI is supported in iOS 13 only
This is probably the most influential negative aspect, because SwiftUI-based apps won’t be released in enterprise environments for at least one year.
there’s no official announcement about how to eventually make it work on earlier iOS versions. This might not impact B2B apps, but definitively does in B2C and trending apps, regardless of iOS user’s habits on keeping the OS updated.
SwiftUI has real-time preview
Finally, we have a “responsive” way to code our views, something we really wanted in Storyboards and UIKit, where previews were low quality and sometimes not efficient when using custom views and dynamic content.
SwiftUI has simplified animations
Something we really missed in old systems, where you have to fight with UIView.animate()
and more. The new easing and animation system looks way better.
Conclusion
SwiftUI is for sure the step to take if you want to follow Apple’s modern interpretation of UI developing.
If you still need something which will not affect your timing provisioning for a new release or a new project your customer is waiting for, continue to use Storyboards or Auto Layout.
For more information and to build a mobile APP using iOS, Hire iOS Developer from us as we give you a high-quality product by utilizing all the latest tools and advanced technology. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft“. To develop your mobile APP using iOS, please visit our technology page.
Content Source:
- medium.com