Cross-platform mobile frameworks solved the critical cross-platform development problem in many different ways. Initially, the Apache Cordova project (formerly PhoneGap) solved this problem by introducing webview-rendering. After that, the Ionic project created a native-like HTML/CSS widgets toolkit for Apache Cordova. Ionic motivated everyone to choose Angular as the frontend framework for developing cross-platform mobile apps. However, both frameworks are built based on native bridges for JavaScript to native communication vise versa. In other words, They created a generic JavaScript interface for native features and exposed native features to the webview.
Many developers created mobile applications with these kinds of webview-based…
Undoubtedly, native applications are the best since they have good performance even on low-end computers. GUIs (Graphical User Interfaces) of native applications are rendered natively by the operating system’s core graphics library. Besides, native applications directly use the operating system API for their features. But native application development is hard if we consider cross-platform support. The reason is that the system APIs are different in each operating system.
The Electron project solved this problem by introducing a way to build cross-platform applications with JavaScript, HTML, and CSS. …
When the file count is increasing, file management is a bit complex and time-consuming. Archive file formats are helping us to create a single file by merging multiple files and directories. Therefore, for users, they can make one file from a set of rarely accessed files. Whenever they need to access the files, they can extract them as typical files and directories. For developers, they can make a single file for storing resources rather than storing all resources separately on disk. That will make the particular software more portable and easy to share as well.
Last week, I was looking…
We use IDEs when we need to work with a specific framework or platform. For example, Android Studio is helping us to create applications for the Android platform. On the other hand, code editors help programmers to work with various sorts of projects. Code editors have helpful features such as syntax highlighting, linting, and auto-complete.
Like most of the die-hard programmers, about 13 years ago, I initially used Microsoft Notepad as a code editor. After that, I just found Notepad++ and switched to it. I installed Dreamweaver. I tried to keep Dreamweaver as my code editor while I was working…
Before James Gosling created Java, platform-specific compiled languages like C/C++ were dominant high-level languages. Programmers had to write codes for each platform by using platform-specific APIs. Some programmers created a single codebase for all platforms by separating code with conditional statements. On the other hand, some programmers wrote codebases for each platform separately. Even though writing platform-specific brings a lot of benefits such as flexibility, customizability, and performance — the business side of the software development needed a way to ship cross-platform software products fast.
From the business perspective, making a software product is about making it correct and making…
Wherever a software system exists, bugs also exist. A particular feature can have many different cases and workflows. Programmers might miss a few edge cases in their implementations. Missing conditions, edge cases, and typos may create bugs in software systems. All most all bugs cannot be prevented during the feature implementations phase. Therefore, we will have to apply fixes when a user or a tester finds a specific bug in our software products. Sometimes, debugging takes more time than implementing a new feature. Hence, it is so important to find out ways to boost your productivity while you are debugging.
…
Recursion is a useful fundamental theory in computer science and mathematics. In mathematics, it appears in areas such as number sequences and functions. In computer science, it is helpful to solve problems by using the divide-and-conquer approach and dynamic programming. The divide-and-conquer approach decomposes a specific problem into smaller sub-tasks. After that, it solves each decomposed tasks to obtain the final solution. These smaller tasks can be either the same or overlapping. If a particular problem has overlapping sub-tasks, dynamic-programming helps us to reach the optimal solution.
Understanding the recursion theory and solving recursive problems could be difficult sometimes. Also…
Whenever a giant tech company acquires another popular platform — or a particular platform updates its privacy policy, people start finding alternatives. Most of the people chose those alternatives based on the current trend rather than analyzing them in-depth. The recent activity regarding WhatsApp’s privacy policy amendment is very popular these days. Many people share a lot of posts about alternatives for WhatsApp: Telegram and Signal. Are you worried about these privacy-related myths than appreciating the quality of the existing popular apps?
Data is indeed fuel for modern machine learning algorithms. Machine learning algorithms on these social media platforms are…
Experienced programmers often make impressive talks about technology and life. I found the following quotes that will make you curious and will change the way you think.
Linus Torvalds initially created the Linux kernel and Git. The Linux kernel powers hundreds of Linux distributions, and it is also the core of the Android mobile operating system. Also, the Git version control system helps almost all software development teams to manage their source files.
If Microsoft ever does applications for Linux it means I’ve won.
His goal was indeed to make a better free operating system, which is better than all…
Programming and software are trending words in the world due to the digitization of things. Every field has a set of fundamental facts that helps everyone to understand reality. People find out these facts when they work in a particular field for a long time. For example, in civil engineering, engineers know that a newly built concrete structure will change its size with time. In their field, that’s an important fact, and they may use some techniques to overcome the side-effects of it.
Likewise, programming also has a lot of facts that every developer should understand. I stepped into the…
Software Engineer at 99x | Apache PMC member | Open Source Contributor (Author of Neutralinojs) | Technical Writer