No-code App Development Using FlutterFlow
Are you looking to revolutionize your app development workflow?
Look no further than FlutterFlow – an innovative visual development platform that’s taking app development to the next level with its intuitive Drag & Drop functionality. In this blog post, we’ll dive into what FlutterFlow is, its key features, and how you can use it to rapidly bring your app ideas to life.
What is FlutterFlow?
At its core, FlutterFlow is a powerful visual development platform designed to simplify and accelerate the process of building mobile and web applications. It’s built on top of Google’s Flutter framework, which is renowned for its ability to create high-quality, natively compiled applications for mobile, web, and desktop from a single codebase.
FlutterFlow takes the power of Flutter and adds an intuitive drag-and-drop interface, making it accessible to developers of all skill levels. Whether you’re a seasoned developer or just starting out, you can leverage FlutterFlow to design, develop, and deploy apps without the need for extensive coding knowledge.
Key Features of FlutterFlow
1. Visual Interface: FlutterFlow offers a visual interface that lets you design your app’s user interface by simply dragging and dropping elements onto the canvas. This speeds up the design process and ensures a pixel-perfect result.
2. Widgets Gallery: The platform provides a wide range of pre-built widgets that you can customize to match your app’s design. From buttons and text fields to complex interactive components, FlutterFlow has you covered.
3. Responsive Design: Building apps that look great on various devices is essential. FlutterFlow enables you to create responsive layouts that adapt seamlessly to different screen sizes and orientations.
4. Data Binding: Connect your app’s UI to data sources easily. FlutterFlow allows you to bind data from APIs or databases to your UI components, keeping your app’s content up-to-date.
5. Collaboration: Collaborate with team members in real-time. Whether you’re a solo developer or part of a team, FlutterFlow supports seamless collaboration, enhancing productivity.
Getting Started with FlutterFlow
1. Sign Up: To get started, sign up for a FlutterFlow account. You can choose from different pricing plans based on your needs.
2. Create a New Project: Once you’re in, create a new project and choose whether you’re building a mobile or web app.
3. Design Your App: Use the visual editor to design your app’s UI. Drag and drop widgets onto the canvas, arrange them, and customize their properties.
4. Add Functionality: Use the built-in logic builder to add functionality to your app. Define interactions, create conditional statements, and more – all without writing extensive code.
5. Preview and Test: Before deploying your app, use the preview feature to test how it looks and functions. Make adjustments as needed to ensure a seamless user experience.
6. Deploy Your App: Once you’re satisfied with your app, deploy it with just a few clicks. FlutterFlow takes care of the technical details, allowing you to focus on delivering an exceptional app.
Conclusion
In the fast-paced world of app development, tools like FlutterFlow are a game-changer. They empower developers to create robust and visually stunning applications without the worry of traditional coding methods. By harnessing the power of Google’s Flutter framework and adding a user-friendly visual interface, FlutterFlow is designed to redefine how we approach app development.
So whether you’re a startup founder looking to build a prototype, a developer aiming to speed up your workflow, or someone passionate about turning your app ideas into reality, FlutterFlow has everything you need to succeed.
For more information, please head over to our Hire Flutter Developer page and to develop a custom mobile application using Flutter, Hire Flutter Developer at HK Infosoft – we are destined to provide you with an innovative solution using the latest technology stacks. E-mail us any clock at – hello@hkinfosoft.com or Skype us: “hkinfosoft”.
Content Source:
- flutterflow.io
What is Pair Programming?
Two Minds, One Goal: The Power of Pair Programming
Pair programming is an agile software development technique in which two developers work together on the same computer to write code. One developer, called the driver, is responsible for typing the code while the other, called the observer, review the code and makes suggestions. The two developers then switch roles, with the observer becoming the driver and the driver becoming the observer.
The story of pair programming originates from a software development company called Chrysler. In the late 1990s, Chrysler was tasked with developing a new software system for its payroll operations. The project was behind schedule and the team was struggling to make progress. In desperation, the lead programmer, Xitij Kothi, suggested an unconventional solution: pair programming. He proposed that two programmers work together on each task, with one writing code while the other reviews and offers suggestions.
The strategy worked. The project was completed on time and the quality of the software was far superior to what had been expected. Since then, pair programming has become a widely accepted practice in software development.
Pair programming can reduce the time it takes to complete a task by allowing two developers to work together more effectively. By having two developers work side-by-side, they can quickly identify and resolve problems as they occur. The navigator can also provide insights into potential issues before they become problems, helping to reduce the amount of debugging and testing that needs to be done. Additionally, pair programming enables developers to learn from each other, which can help reduce the amount of time it takes to complete a task.
Pair programming also helps to spread knowledge and skills among the team members, as each programmer learns from the other. This can be especially useful in distributed software projects, where team members may be geographically dispersed.
Story Time
John and Jane had been classmates for the past couple of months, but never really got to know each other very well. They had been assigned a project in their programming class and had decided to work together.
John was very knowledgeable in the subject and had a good understanding of what was expected. Jane, on the other hand, had little to no experience with programming but was eager to learn. Together, they decided to use the pair programming technique.
John and Jane sat down together and discussed their project. John explained the concept of pair programming, how it works, and what their roles would be. Jane was very willing to learn and was excited to get started.
John and Jane began writing the code for their project. John took the lead and wrote most of the code while Jane watched and asked questions. Whenever Jane found a mistake or had an idea, she would suggest it to John, who would then incorporate it into the code.
In this way, John and Jane worked together to complete their project. By the end of it, both of them had gained a better understanding of programming and had come to know each other better.
“Pair programming had become a regular part of John and Jane’s programming class ever since.”
Issues we can face during Pair Programming and its Solutions
One type of problem that programmers can face during pair programming is communication breakdown. This is when two programmers are unable to effectively communicate with each other due to a lack of understanding or different working styles. To overcome this issue, it is important to ensure that both programmers are on the same page before starting to program. This can be done by discussing the problem, breaking it down into small manageable parts, and discussing how to approach it. It is also important to ensure that there is an equal amount of speaking and listening between the two programmers. It is also important to be aware of any language or cultural differences that may be present and to adjust your communication accordingly.
Different abilities can be a problem during pair programming because one programmer may be more knowledgeable or experienced in a certain area than the other. This can lead to the more experienced programmer taking on a larger share of the work, leaving the less experienced programmer feeling frustrated or left out.
To overcome this, the two partners should agree on a division of tasks based on their respective strengths. For example, if one partner is more experienced with databases, they can take the lead on designing and setting up the database structure, while the other partner focuses on developing the business logic. Both partners should aim to challenge each other and provide feedback and support to ensure that the project is completed to the highest standard. Additionally, the partners should regularly rotate tasks so that both have the opportunity to learn from each other and gain a more comprehensive understanding of the project.
Task division can be a problem during pair programming if one person takes on more responsibility than the other, leaving the other feeling like they’re not contributing as much to the project. This can lead to frustration and resentment, and can ultimately undermine the collaborative nature of pair programming. To overcome this, the two people should agree on how they will divide the tasks before they begin.
For example, they can decide that one person will take the lead on the coding while the other focuses on debugging and testing, or that each person will take turns writing sections of code. They should also make sure to have regular check-ins to discuss progress, address any issues, and ensure that both parties are on the same page. This will help ensure that both parties feel like they’re contributing equally to the project.
Distractions can be a major problem during pair programming, as they can prevent the pair from focusing on their task and completing it in a timely manner. Distractions could include anything from phones, emails, instant messages, or conversations with other people in the same room. To overcome distractions during pair programming, both partners should agree to have their phones on silent and out of sight. If possible, they should also try to find a quiet space where they can work without interruption. Additionally, they should set aside specific times to check emails and other messages and then get back to their task. They should also set specific goals and deadlines for the task ahead of time to help keep them on track.
one person may be more accustomed to writing code with fewer lines and using terse abbreviations, while the other person may prefer longer and more descriptive lines of code. This can lead to a lot of back and forth, which can slow down the programming process. To overcome this problem, it is important to have open communication and be respectful of each other’s coding styles. The pair should discuss their preferences and try to come to an agreement on which style they should use. They should also discuss the types of coding conventions they want to follow and agree on a coding style guide. Additionally, they should take time to explain their code to each other, as this can help them better understand each other’s coding styles. Finally, they should be open to feedback and criticism and be willing to compromise.
Conclusion
The importance of pair programming lies in its ability to improve the quality of code while also reducing the time it takes to develop software.
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
What’s new in Flutter 3.3
Only three months ago Google announced Flutter 3, a massive milestone that included stable support for all platforms! The good news is that the momentum since this major release has not slowed down. Since the release of Flutter 3, Flutter has merged 5,687 pull requests.
This release brings updates to Flutter web, desktop, text handling improvements in performance — and much more!
Framework
Global Selection
Until now, Flutter web apps didn’t match the expected behavior when attempting to select text. Like Flutter apps, native web applications are composed of a tree of elements. In a traditional web app, you can select multiple web elements with a single sweeping gesture, something that couldn’t be easily done on a Flutter web app.
Today that all changes! With the introduction of the SelectableArea widget, any child of the SelectableArea widget has selection enabled for free!

Pic courtesy: medium.com
To take advantage of this powerful new feature, simply wrap your route body (such as the Scaffold) with the SelectionArea widget and let Flutter do the rest.
Trackpad input
Flutter 3.3 provides improved support for trackpad input. This not only provides richer and smoother control but also reduces misinterpretation in certain cases. For an example of this misinterpretation, check out the Drag a UI element page in the Flutter cookbook. Scroll to the bottom of the page to get to the DartPad instance, and perform the following steps:
- Size the window smaller so that the upper part presents a scrollbar
- Hover over the upper part
- Use a trackpad to scroll
- Prior to installing Flutter 3.3, scrolling on a trackpad drags the item because Flutter was dispatching emulated general events
- After installing Flutter 3.3, scrolling on a trackpad correctly scrolls the list because Flutter is delivering the “scrolling” gesture, which isn’t recognized by the cards, but is recognized by the scroll view
Scribble
Flutter now supports Scribble handwriting input using the Apple Pencil on iPadOS. This feature is enabled by default on CupertinoTextField, TextField, and EditableText. To enable this feature for your end users, simply upgrade to Flutter 3.3.

Pic courtesy: medium.com
Text input
To improve support for rich text editing, this release introduces the ability to receive granular text updates from the platform’s TextInputPlugin. Previously, the TextInputClient only delivered the new editing state with no delta between the old and new, TextEditingDeltas and the DeltaTextInputClient fill this information gap. Having access to these deltas allows you to build an input field with styled ranges that expand and contract as you type.
Material Design 3
The Flutter team continues to migrate more Material Design 3 components to Flutter. This release includes updates to IconButton, Chips, and large and medium variants for AppBar.
IconButton

Pic courtesy: medium.com
Chip

Pic courtesy: medium.com
Medium and large AppBar

Pic courtesy: medium.com
Desktop
Windows
Previously, the Windows desktop application’s version was set by a file specific to the Windows application. This behavior was inconsistent with the way other platforms set their versions.
Windows desktop application versions can now be set from your projects pubspec.yaml file and build arguments. This makes it easier to enable auto updates for your end customers to get the latest and greatest when an application update is pushed.
Packages
go_router
When designing apps with complex navigation needs, things can get pretty hard to wrap your head around. To extend Flutter’s native navigation API, the team has published a new version of the go_router package, making it simpler to design routing logic that works across mobile, desktop, and the web.
The go router package, maintained by the Flutter team, simplifies routing by providing a declarative, url-based API, making it easier to navigate and handle deep-links. The latest version (4.3) enables apps to redirect using asynchronous code, and includes other breaking changes described in the migration guide.
VS Code extension enhancements
The Visual Studio Code extension for Flutter has several updates including improvements for adding dependencies. You can now add multiple, comma-separated dependencies in one step using Dart: Add Dependency.

Pic courtesy: medium.com
Performance
Raster cache improvements
This release increases the performance of loading images from assets by eliminating copies and reducing Dart garbage collection (GC) pressure. Previously, when loading asset images, the ImageProvider API required the compressed data to be copied multiple times. First, it was copied into the native heap when opening the asset and exposing it to Dart as a typed data array. Then, it was copied a second time when that typed data array was copied to the internal storage of a ui.ImmutableBuffer.
With the addition of ui.ImmutableBuffer.fromAsset, compressed image bytes can be loaded directly into the structure used for decoding. This approach requires changes to the byte loading pipeline of ImageProviders. This process is also faster because it bypasses some additional scheduling overhead required bythe previous method channel-based loader. In particular, image loading time improved by nearly 2x in our microbenchmarks.

Pic courtesy: medium.com
Stability
iOS pointer compression disabled
In the 2.10 stable release, they enabled Dart’s pointer compression optimization on iOS.Dart’s pointer compression works by reserving a large virtual memory region for Dart’s heap. Since the total virtual memory allocation allowed on iOS is less than on other platforms, this large reservation reduces the amount of memory available for use by other components that reserve their own memory, for example, Flutter plugins.
While disabling pointer compression increases the memory consumed by Dart objects, it also increases the memory available for non-Dart parts of a Flutter application, which is more desirable overall.
Apple provides an entitlement that can increase the maximum allowed virtual memory allocation for an application, however this entitlement is only supported on newer iOS versions, and wouldn’t work on devices running versions of iOS that Flutter still supports. When we are able to use this entitlement everywhere, we intend to revisit this optimization.
For more information and to develop mobile apps using Flutter, Hire Flutter 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 Mobile Apps using Flutter, please visit our technology page.
Content Source:
- medium.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
What’s new in Flutter 3
The recent release of Flutter v3.0 is now stable for macOS and Linux, in addition to Windows!
There are several exciting things coming as part of this release, including the update on Flutter’s support for macOS and Linux, significant performance improvements, mobile and web updates — and much more!
Ready for production on all desktop platforms
Linux and macOS have reached stable and include the following features:
Cascading menus and support for the macOS system menu bar
You can now create platform-rendered menu bars on macOS using the PlatformMenuBar widget, which supports the insertion of platform-only menus, and control over what appears in the macOS application menus.
Full support for international text input on all desktop platforms
International text input, including for languages that make use of text input method editors (IMEs) such as Chinese, Japanese, and Korean is fully-supported on all three desktop platforms, including third-party input methods such as Sogou and Google Japanese Input.
Accessibility on all desktop platforms
Flutter for Windows, macOS, and Linux supports accessibility services such as screen-readers, accessible navigation, and inverted colors.
Universal binaries by default on macOS
As of Flutter 3, Flutter macOS desktop apps are built as universal binaries, with native support for both existing Intel-based Macs and Apple’s latest Apple Silicon devices.
Deprecating Windows 7/8 for development
With this release, it has raised the recommended Windows version for development to Windows 10. While there isn’t any blocking development on older versions (Windows 7, Windows 8, Windows 8.1), these versions are no longer supported by Microsoft and there is limited testing on these releases.
Mobile updates
Updates to mobile platforms include the following:
Foldable phone support
The Flutter 3 release supports foldable mobile devices. In a collaboration spearheaded by Microsoft, new features and widgets allow you to create dynamic and delightful experiences on foldable devices.
As part of this work, MediaQuery now contains a list of DisplayFeatures, describing the bounds and states of device elements like hinges, folds, and cutouts. Additionally, the DisplayFeatureSubScreen widget now positions its child widget without overlapping the bounds of DisplayFeatures, and has already been integrated with the framework’s default dialogs and pop-ups, making Flutter aware and responsive to these elements out of the box.

Pic courtesy: medium.com
iOS variable refresh rate support
Flutter now supports variable refresh rate on iOS devices with ProMotion displays, including iPhone 13 Pro and iPad Pro. On these devices, Flutter apps can render at refresh rates reaching 120 hz, which were previously limited to 60 hz. This results in a smoother experience during fast animations such as scrolling. See flutter.dev/go/variable-refresh-rate for more details.
Gradle version update
If you create a new project with the Flutter tool, you might notice that the generated files now use the latest versions of the Gradle and Android Gradle plugins. For existing projects, you need to manually bump the versions to 7.4 for Gradle, and 7.1.2 for the Android Gradle plugin.
Web updates
Updates for web apps include the following:
Image decoding
Flutter web now automatically detects and uses the ImageDecoder API in browsers that support it. As of today, most Chromium-based browsers (Chrome, Edge, Opera, Samsung Browser, and more) have added this API.
The new API decodes images asynchronously off the main thread using the browser’s built-in image codecs. This speeds up image decoding by 2x, and it never blocks the main thread, removing all jank that was previously caused by images.
Web app lifecycles
The new lifecycle API for Flutter web apps gives you the flexibility to control the bootstrap process of your Flutter app from the hosting HTML page, and helps Lighthouse analyze the performance of your app. This applies to many use-cases, including the following frequently requested scenarios:
A splash screen.
A loading indicator.
A plain HTML interactive landing page displayed before the Flutter app.
Tooling updates
Updates to Flutter and Dart tooling include:
Updated lint package
Version 2.0 of the lint packages have been released:
Flutter: https://pub.dev/packages/flutter_lints/versions/2.0.0
Dart: https://pub.dev/packages/lints/versions/2.0.0
Apps generated in Flutter 3 with flutter create automatically enable the v2.0 sets of lints. Existing apps, packages, and plugins are encouraged to migrate to v2.0 to follow the latest and greatest best practices in the Flutter world, by running flutter pub upgrade –major-versions flutter_lints.
Most of the newly added lint warnings in v2 come with automated fixes. So, after upgrading to the latest package version in your app’s pubspec.yaml file, you can run dart fix —-apply over your code base to fix most lint warnings automatically (some warnings still require some manual work). Apps, packages, or plugins that aren’t using package:flutter_lints yet can migrate by following the migration guide.
Performance improvements
Thanks to open source contributor knopp, partial repaint has been enabled on Android devices that support it. In our local testing this change cut average, 90th percentile, and 99th percentile frame rasterization times on the backdrop_filter_perf benchmark on a Pixel 4 XL device by 5x. Partial repaint when there is a single rectangular dirty region is now enabled on both iOS and newer Android devices.
It has further improved the performance of opacity animations in simple cases. In particular, when an Opacity widget contains only a single rendering primitive, the saveLayer method that is usually invoked by Opacity is omitted. In a benchmark constructed to measure the benefits of this optimization, rasterization time for this case improved by an order of magnitude.
More exciting updates
Other updates to the Flutter ecosystem include the following:
Material 3
Flutter 3 supports Material Design 3, the next generation of Material Design. Flutter 3 provides opt-in support for Material 3; this includes Material You features like dynamic color, an updated color system and typography, updates to many components, and new visual effects introduced in Android 12 like a new touch ripple design and a stretch overscroll effect. Try the Material 3 features in the new Take your Flutter app from Boring to Beautiful codelab.
For more information and to develop mobile apps using Flutter, Hire Flutter 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 Mobile Apps using Flutter, please visit our technology page.
Content Source:
- medium.com
What’s new in Flutter 2.10
We can’t believe it’s time again for a Flutter 2.10 stable release!
There are several exciting things to announce as part of this release, including a big update on Flutter’s support for Windows, several significant performance improvements, new support for icons and colors in the framework, and some tooling improvements. In addition, we’ve got some updates on the removal of the dev channel, reduction in support for older versions of iOS, and a short list of breaking changes. Let’s get to it!
Ready for production apps on Windows
First and foremost, the Flutter 2.10 release brings with it the stable release of Windows support. You no longer need to flip a flag to get the functionality that produces Windows apps on the stable channel of Flutter — now it’s available by default!
Of course, we did a lot more than just flip a flag. This release includes extensive improvements for text handling, keyboard handling, and keyboard shortcuts, as well as new integrations directly into Windows, with support for command-line arguments, globalized text entry, and accessibility.
For much more on the Windows stable launch, see the Announcing Flutter for Windows blog post, which describes the architecture of Flutter on Windows that allows for deep integration and gives you a sense of just how many Flutter packages and plugins already support Windows. You can also see some examples of what our tooling and app partners are doing with Flutter on Windows!
Performance improvements
This release of Flutter includes initial support for dirty region management provided by Flutter community member knopp. He’s enabled partial repaints for a single dirty region on iOS/Metal. This change reduced 90th and 99th percentile rasterization times on a few benchmarks by an order of magnitude, and reduced GPU utilization on these benchmarks from more than 90% to less than 10%.

Pic courtesy: medium.com
We expect to bring the benefits of partial repaints to other platforms in future releases.
In the Flutter 2.8 release, we landed our own internal picture recording format. Now in Flutter 2.10, we’ve started building optimizations with it. As an example, one common case of opacity layers is now implemented much more efficiently. Even in the worst case, frame raster times in our benchmarks fell to under a third of their previous value.

Pic courtesy: medium.com
We expect this optimization to expand to cover more cases as we continue developing the picture recording format.
In profile and release modes, Dart code is compiled ahead of time to native machine code. The key to the efficiency and small size of this code is a whole program type flow analysis that unlocks many compiler optimizations and aggressive tree-shaking. However, as the type flow analysis must cover the whole program, it can be somewhat expensive. This release includes a faster implementation of type flow analysis. Overall build time for the Flutter app in our benchmarks fell by ~10%.

Pic courtesy: medium.com
As always, performance enhancements, reduced memory usage, and reduced latency are a priority for the Flutter team. Look forward to further improvements in future releases.
iOS updates
In addition to performance improvements, we’ve also added some platform-specific features and enhancements. One new enhancement is smoother keyboard animations in iOS from luckysmg, which is provided automatically to your app without you having to do a thing.

Pic courtesy: medium.com
We’ve also improved the stability of the camera plugin for iOS by fixing a few edge case crashes.
Finally, 64-bit iOS architectures get a new feature to reduce memory usage: compressed pointers.
A 64-bit architecture represents pointers as a 8-byte data structure. When you have a lot of objects, the space taken up by the pointers themselves adds to the overall memory usage of your app, especially if you have larger, more complicated apps that have more GC churn. However, your iOS app is very unlikely to have enough objects to require a significant portion of even the 32-bit address space (2 billion objects), let alone the enormity of the 64-bit address space (9 million billion objects).
Compressed pointers were provided in Dart 2.15 and in this release of Flutter, we use them to reduce the memory usage for 64-bit iOS apps. You can check out the Dart 2.15 blog post for details.
And while you’re reading Dart blog posts, don’t forget to check out the Dart 2.16 announcement for updates on supporting Flutter for Windows with package platform tagging and a new search experience on pub.dev.
Android updates
This release contains a number of improvements for Android as well. By default, when you create a new app, Flutter defaults to support the latest version of Android, version 12 (API level 31). Also, in this release, we’ve enabled multidex support automatically. If your app supports Android SDK versions below 21, and it exceeds the 64K method limit, simply pass the –multidex flag to flutter build appbundle or flutter build apk and your app will support multidex.
And last but not least, we listened to your feedback that Gradle error messages can be intimidating. For this reason, the Flutter tool now suggests resolution steps to common issues. For example, if you add a plugin to your app that requires you to increase the minimum supported Android SDK version, you now see a “Flutter Fix” suggestion in the logs.

Pic courtesy: medium.com
We continue to add more suggestions to common error messages, and would love to get your feedback on other error messages where this treatment would be useful.
Web updates
This release contains some improvements on the web as well. For example, in previous releases, when scrolling to the edge of a multiline TextField on the web, it wouldn’t scroll properly. This release introduces edge scrolling for text selection: when the selection moves outside of the text field, the field scrolls to view the scroll extent. This new behavior is available for both web and desktop apps.

Pic courtesy: medium.com
In addition, this release of Flutter includes another notable improvement in the web. We’re always looking to reduce the overhead of our mapping of Flutter to the web. In previous versions, every time we wanted to bring a native HTML widget into your Flutter app, we needed an overlay as part of our platform view support for the web. Each one of these overlays enables custom painting but represents a certain amount of overhead. If you have a large number of native HTML widgets in your app, such as links, that adds up to a lot of overhead. With this release, we’ve created a new “non-painting platform view” for the web that essentially removes that overhead. And we’ve taken advantage of this optimization in the Link widget, which means if you have many links in your Flutter web app, they no longer represent any significant overhead at all. We’ll be applying this optimization to other widgets over time.
For more information and to develop mobile apps using Flutter, Hire Flutter 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 Mobile Apps using Flutter, please visit our technology page.
Content Source:
- medium.com
What’s new in Flutter 2.8
Flutter aims to change how apps are built. It unites mobile, web, desktop, and embedded development into a single toolkit: letting developers focus first on what they want to build, rather than which platforms they want to target; offering a high-performance, high-productivity framework that shortens the inner loop for developers; and enabling one codebase to target multiple platforms and form factors.
New features and improvements: faster and more productive
One of the major areas of focus for this release is mobile performance. Ideally great performance would come for free, but in practice any complex app needs optimization to make sure it uses the underlying hardware and libraries well. That includes startup performance, which can be constrained by network bandwidth or other initialization costs; memory usage, particularly on memory-constrained devices; and graphics rendering. We’ve been using some of our experiences with large Google apps like Google Pay to invest both in making Flutter itself more performant, and in giving you better tooling to guide profiling and optimization of your own app. Your apps should start faster and use less memory just by upgrading to Flutter 2.8.
The latest update makes it easier than ever to connect apps to back-end services, such as Firebase and Google Cloud. It adds production-quality support for Google Ads and major upgrades to the camera and embedded web plugins. The release also includes Dart 2.15, which adds major improvements to concurrency, new language features like constructor tearoffs and enhanced enumerations, and optimizations that deliver a 10% reduction in memory utilization.

With the new developer productivity enhancements to Flutter, an app can support sign-in to multiple authentication services with just a single drop-in widget.
Pic courtesy: medium.com
Another big theme of investment in this release that you’ll see us carry forward into future releases is further improving developer productivity. With features like stateful hot reload, we’ve always focused on creating a tight inner loop for developers. We’re now starting to explore some higher-level abstractions that make it easier for developers to get running faster. For example, in this release we’re adding a sign-in widget that uses Firebase to handle authentication. With this widget, you don’t have to worry about all the edge cases of sign-in, such as two-factor authentication or reset password user flows, nor about the complexities of supporting Google, Apple, Twitter, or Facebook as an auth provider. Features like this, building on the core foundations of Flutter, have the potential to transform how developers build apps, combining the development speed of low-code solutions with the flexibility and power of a full UI framework.
Both Flutter 2.8 and Dart 2.15 are available now, and should be an easy upgrade for existing apps running the previous version. For greater detail, we have a technical blog post covering the enhancements in each of Dart and Flutter.
Casual game development with Flame
For most developers, Flutter is an app framework. But there’s also a growing ecosystem around casual game development, taking advantage of the hardware-accelerated graphics support provided by Flutter.
Today, we are thrilled to celebrate the 1.0 release of Flame, a modular 2D game engine built on top of Flutter. Flame provides what you need to build games quickly: as well as a game loop, it also includes core primitives such as a component system, animated sprites and images, collision detection, a world camera, an effects system, and gesture and input support.
Flame is modular and can also be extended with packages that offer integrations to other libraries, for instance Rive (for animations), audioplayers (for music and sound effects), Forge2D (a Box2D-style physics engine), Tiled (tile maps editor), Fire Atlas (a sprite sheet and animation editor). Together, Flame and the broader ecosystem offer a strong set of services for a casual or 2D game developer.

Tomb Toad, Gravity Runner and Bonfire: three examples of games built with Flame.
Pic courtesy: medium.com
Flame is created by Blue Fire, a group of contributors focusing on creating open source packages and plugins for Flutter and Dart. We’re delighted to partner with them and encourage you to check out Flame if you’re interested in game development.
Flutter’s continued momentum
We’re amazed to see how fast Flutter continues to grow, with a flourishing ecosystem of apps and tools that build on top of the core framework. At this year’s Google I/O event, we noted that there were already over 200,000 apps built with Flutter in the Play Store. In just over six months since that event, the number of Flutter apps has nearly doubled, with more than 375,000 Flutter apps now in the Play Store.

Flutter supports Android, iOS, iPadOS, web, Windows, macOS and Linux: so you don’t have to rewrite your app just to target a different device or form factor.
Pic courtesy: medium.com
Flutter isn’t just used on Android, of course. According to independent mobile analyst firm AppAnnie, apps using Flutter on iOS include top brands and apps including BMW, eBay, WeChat, SHEIN, Philips Hue, Norton, trip.com and Greggs. On the web, Flutter is finding a home for app experiences, benefitting design tools like FlutterFlow and Rive. On desktop, the Ubuntu engineering team continues to build a variety of new experiences with Flutter, including a new installer and firmware updater. Even games like PUBG are finding that Flutter is a great fit for UI screens.
Ecosystems take a long time to build, but Flutter is now the most popular multi-platform toolkit, as measured independently by Statista, JetBrains, SlashData, and Stack Overflow. We don’t take that for granted, but the growth of Flutter’s popularity leads to an ever broader ecosystem of packages and tools that support it.
For more information and to develop mobile apps using Flutter, Hire Flutter 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 Mobile Apps using Flutter, 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