WhatsApp: its role and history
WhatsApp was founded by Jan Koum and Brian Acton in 2009. At the end of the year, it was launched on the App Store for iPhone with no alternatives in the world at the time.
This application, referred to as an instant messenger, was intended to give users an opportunity to exchange messages in real time using mobile Internet or WiFi. Today WhatsApp is available for all popular mobile operating systems.
Apple's App Store has more than 2.2 billion apps. Consumers spend as much as 80% more on iOS apps compared to Android ones. Such a tendency led to $38.5 billion in revenue, $26.5 billion of which was paid off to iOS developers for 2017.
However, iOS is loved by developers from all over the world not only for financial reasons. The simplicity of development and minimalistic approach which company sticks to also make a difference. There are no fragmentation problems as the lineup of Apple devices is relatively small and all of them have a unified UI.
To build an iOS app, you'll need to hire iOS app developer working with Objective-C or Swift in Xcode or any other IDE. In this guide, we also cover the vital points you need to learn before you hire iOS programmers.
iOS developer roles and responsibilities
Many fail to understand the full scope of responsibilities that lay on shoulders of iOS developers. In fact, the borders of iOS developer responsibilities go beyond writing code. They take part at every stage of app development from planning and design aspects (wireframing screens, building UI) to testing and publishing the ready-made app to the App Store. In other words, an iOS developer turns the specifications of your mobile application into a working and user-friendly product.
Design awareness is what you should pay a due attention to while looking for iOS developer candidate. The point is, the care for design isn't something that only mobile designers responsible for since developers are also in charge of transferring good experience to final users. That's why among iOS developer key skills should be an experience with both UI/UX, understand their principles, and, of course, be good at programming in Swift or other languages.
Junior, middle, and senior iOS developersTypically, the versatility of developers depends on their working experience. Respectively, the more projects a developer has worked on, the more complex and diverse tech problems he/she can solve.
In the IT industry, the skills of programmers are divided into three levels: junior, middle, and senior.
Junior iOS developer
This is the entry level iOS developer. In companies, junior developers most commonly work alongside their more experienced colleagues to improve their knowledge and enhance skills. It usually takes a few years for junior developers to level up.
Middle iOS developer
After working on a variety of complex projects, developers move from beginners to a more advanced level that's called middle or mid level iOS developer. Here they have more independence in terms of working on projects.
Senior iOS developer
Senior iOS developer is an experienced developer that has seen tons of code and released dozens of apps. Typically, such developers not just code and design an app, but deal with testing, integration of APIs, and security matters.
Taking into account everything mentioned above, you're willing to choose whether your project requires less or more experienced iOS software engineer. The key factor here is your budget, as salaries for each level may vary dramatically. The project complexity also matters since the junior developer will barely cope well with a large project having a complicated business logic behind.
iOS developer skill set
The iOS developer technical skills largely depend on your project. However, the general skills needed for iOS developer should look something like this:
- Proficient with Swift or Objective-C programming language;
- Knowledge of Xcode IDE;
- Experience with APIs like Cocoa Touch and UIKit;
- Understanding of RESTful APIs;
- Understanding of UI and UX design standards;
- Knowledge of Apple Human Interface Guidelines;
- Experience with Metal or OpenGL;
- Advanced knowledge of code versioning tools like Git;
- Knowledge of Core Data framework.
A year after writing the article about checking Tizen, developers of the PVS-Studio static analyzer checked the quality of the operating system code again, this time demonstrating the abilities of their product to detect errors and potential security vulnerabilities in the Android code.
Despite the fact that the Android code is of high quality and is well tested, and its development includes at least the use of Coverity static analyzer, PVS-Studio still managed to find a lot of interesting defects. Some errors are classified as CWE (Common Weakness Enumeration), which for a certain coincidence of circumstances can be used as vulnerability (CVE). That is why, if you want to protect your code from security vulnerabilities, you should find as many bugs as described in CWE and eliminate them.
PVS-Studio static analyzer team, which until recently was searching for bugs and potential vulnerabilities only in C, C++, and C# code, has prepared a new version of their tool for Java code as well. Despite the fact that in the Java world there is already a number of static analysis tools, developers believe that their analyzer can be powerful and will be a good competition.
If you are a software developer working in the video game industry and wondering what else you could do to improve the quality of your product or make the development process easier and you don’t use static analysis – it’s just the right time to start doing so. You doubt that? OK, I’ll try to convince you. And if you are just looking to see what coding mistakes are common with video-game and game-engine developers, then you’re, again, at the right place: I have picked the most interesting ones for you.
Software bugs can lead not only to material losses, but also can damage human's health. For example, actors on the stage of a theatre can get injured if suddenly one of the scenery begins to go down on the stage at the wrong time. However, the connection between the errors in code and the health damage of medical software is more obvious. Let's talk about this topic.
This article focuses on the teams of developers who create the programs for a medical equipment. I hope they will not stay indifferent and will check their code. Let's recall two famous cases where errors in programs, related to medicine, became the reason for bad news.
Firstly, it is a series of tragic events caused by the errors in the Therac-25 device of radiation therapy. This device has caused at least six overdoses of radiation within the period from June 1985 to January 1987, some patients received doses of tens of thousands of rad. At least two people died directly from the radiation overdoses. Software bugs of the device were the reason of the tragedies and the main problem was the incorrect security strategy.
Firebird, MySQL, and PostgreSQL are probably the most famous representatives of DBMS. Naturally, these projects often are compared with each other - by functionality, usability, etc. We have decided to perform our own code quality comparison of these projects.
The article gives a review of bugs, detected using PVS-Studio static code analyzer. A 'direct' approach of comparing by the number of warnings in this case is badly applicable, so you have to find other ways to compare. For example, you can analyze projects for potential vulnerabilities, as well as to see which of the most interesting errors will be found. By undertaking such a review, you can estimate, which code is better, and find out who will emerge victorious from this battle.
Read more - https://www.viva64.com/en/b/0542/
Honestly I warn: take this text with a certain amount of skepticism. I just recently started to get acquainted with the internals of PHP, but I would like to tell you about what is happening behind the scenes bug # 75237 .
Is the rabbit hole deep?
How many minutes do you need to understand what the chip is?
Francis Bacon in 1620 divided the sources of human error in the way of cognition into four groups, which he called "ghosts" or "idols" (Latin idola).
"Ghosts of the genus" stem from human nature itself, they do not depend on either culture or individuality of a person. "The human mind is like an uneven mirror, which, mixing the nature of things, reflects things in a distorted and disfigured form."
The inspiration for writing this article was obtained after reading a similar publication for the x86 architecture .
This material will help those who want to understand how the programs are built from the inside, what happens before entering the main and why all this is done. Also I'll show you how to use some of the features of the glibc library. And in the end, as in the original article , the traversed path will be visually represented. Most of the article is a parsing of the glibc library.
So, let's start our trip. We will use Linux x86-64, and as a debugging tool - lldb. Also sometimes we will disassemble the program with objdump.
The source text is normal Hello, world (hello.cpp):
std::cout << "Hello, world!" << std::endl;