Apple’s Objective C has got rather old now, after a run that spanned roughly 3 decades. The tech giant, a few years back, decided to change things for the better with a new programming language. The language got a major upgrade at WWDC 2015, and its version 2.2 was, surprisingly, made open source under the Apache License 2.0. Going by the name Swift, the language didn’t gain much momentum…till now.

Though it didn’t create much of a big impression at first, Swift did prove useful for macOS X and iOS application development. Its compatibility with existing Objective-C libraries is an added benefit, making it a great option for developers who already know their way around Objective-C.

That said, Swift is expected to make a major comeback soon with its clever features, design elements, and further upgrades. It could be the most wanted skill in software development soon, if Apple continues to improve it at a rapid pace.

Here’s why it’s time for iOS developers to start picking up Swift.

It’s easy to learn

Swift’s syntax is simple enough to rival Python, and the language was designed to be easy to use. Even while learning, developers would be able to build apps faster than they would be able to when learning a different platform. The short learning curve also seems to have got many developers interested in the language over the years.

It’s quite fast

There are claims that codes built with Swift is as fast as compiled C codes. The language facilitates a more responsive development environment with Apple claiming that Swift’s search algorithms is up to 2.6 times faster than Objective-C, and 8.4 times faster than Python 2.7. The language also provides real-time feedback and enables developers to seamlessly integrate it with existing Objective-C code.

Devs can tinker with it

In order to make the language approachable and more appealing to developers, Apple made available a lot of learning resources and a cool app called Swift Playgrounds. The developers can experiment with Swift and learn the concepts behind it quickly with the Playgrounds app.

It’s safe

Apple made no compromises when it comes to Swift’s security. When working with the language, unsafe code is less likely to present itself. The developers can ensure tight security in apps developed with Swift by using modern programming conventions.

It could be the go-to language of the near future for Apple development

Apple is successful, and one of the biggest companies in the world. The company has reportedly handed over more than $15 billion to developers in the US alone since the App Store was launched. For developers, this makes sense to support the platforms the company prefers, which include iOS, tvOS, macOS etc.

Swift would eventually be an important factor when it comes to application development for all these platforms, considering the effort Apple takes to improve and refine the language. Because of its open source nature, it’s also expected to contribute to the growth of open source development services sector.


It’s Apple’s commitment to Swift which makes it appealing. It’s reached version 4.1, and v.5 is already under development. Apple seems to be refining the language to make it even more impressive, despite its humble beginning. Swift has certainly become one of the most popular open source technologies today since its release in 2014. It could potentially change the face of iOS/macOS development, which is why developers shouldn’t turn a blind eye to Swift.

Written by: verbat

Microsoft’s always had a pragmatic approach when it comes to Virtual Reality. The tech giant seems to be sticking to that approach with SharePoint spaces, the most recent addition to one of the most Microsoft technologies today. SharePoint spaces enables users to build and view Mixed Reality experiences with SharePoint platform, potentially redefining collaboration.

SharePoint Spaces

SharePoint Spaces serves a purpose similar to PowerPoint. The latter made it easier to create business presentations. SharePoint Spaces, however, helps build content viewable with Mixed Reality headsets or with browsers that support WebVR. It features templates for content like a 360 degree videos or a gallery of 3D models – anything immersive enough to be potentially of use in training employees or a virtual customer catalog.

The technology was unveiled on May 21 during the SharePoint Conference North America opening keynote.

Potential usage scenarios

Microsoft teased a lot of potential usage scenarios for SharePoint Spaces including but not limited to:

  • Recruitment and training
  • Onboarding
  • Product development

This seems to go with Microsoft’s approach to support business-focused applications that leverage modern mainstream technologies like Artificial Intelligence, Virtual Reality, and Augmented Reality.

Sneak peek on Microsoft’s new strategies

From what we can see, Microsoft’s new strategy for ‘modern workplaces’ seem to be revolving around mixed reality. At a recent Build conference, Microsoft unveiled two new Mixed Reality-based apps – Layout and Remote Assist, designed for work scenarios which speaks more on the tech giant’s strategy.

Despite the uncertainty whether SharePoint Spaces is just another solution without a problem asking for it, Microsoft’s gesture still seems to be potentially building up innovative opportunities from a business’ perspective. The highlight is that the user doesn’t need to have any 3D knowledge to craft a Mixed Reality experience with SharePoint Spaces. The feature might come of use for many business domains including software development companies.

Though SharePoint Spaces only gives a basic Mixed Reality experience now, it’s bound to be updated to pack better, more innovative features if Microsoft still sticks to its present approach. Microsoft reportedly plans to make SharePoint spaces available to anyone with an Office 365 commercial plan. Users would be able to work with templates with which they can create Mixed Reality environments. They have the option to add documents, 2D files, 3D videos, and many other data stored in SharePoint.

Microsoft also touted new additions to OneDrive and SharePoint that will augment the platforms to possess AI capabilities. Microsoft will be adding a Scan button to the OneDrive mobile app soon which will enable users to scan images, photos, business cards, and whiteboards. The app will also be capable of automatically uploading images to Office 365 which users can work with later.


The beloved collaboration platform seems to be climbing new heights or at least making an effort to. Considering the fact that VR/AR, or rather Mixed Reality, will play a pivotal role in the growth of businesses in the not too distant future, enterprises using SharePoint would heartily welcome the latest upgrade to the platform. For an Agile software development company that leverages SharePoint for collaboration, there could be a lot of immersive experiences ahead.

Written by: verbat

The first step in mobile app development is to identify the target audience. The app’s success depends on whether it’s able to solve problems or make things easier and more convenient for a specific audience. To craft a useful solution that caters to particular people, those people need to be understood at a granular level.

Analyzing user behavior, interestingly, gives a lot of insights on the users to a certain extent. For instance, a user’s choice in a smartphone gives developers insights on their behavior, common habits, and even personality. The developer would be able to estimate the types of apps that users are more likely to download, their willingness to pay for services in the app, and the probability of an in-app purchase. This information is what a mobile application development company leverages so as to make a decision on which platform to build the app for.

Choosing a platform

Android and iOS account for over 95% of the mobile market, which is one of the main reasons why brands consider each or both of these platforms for their apps. In the first quarter of 2018, there were over 19 billion downloads in Google Play while iOS app downloads exceeded 8 billion.

As for consumer spend, iOS users are generally more willing to spend on apps. Android is not far behind however, with consumer spend in Google Play going up by 25% in Q1 2018. Still iOS apps generate more revenue compared to Android apps with Google narrowing the gap with each passing year.

To choose a platform, you will have to understand market traits, where your app can fit in, and how you intend users to interact with your app. Ultimately, making a choice between Android and iOS comes down to your priority between user acquisition and revenue generation – Android for the former and iOS for the latter.

Differences between platforms that impact user experience

Both platforms are fundamentally different, and these differences directly influence the user’s platform choice. iOS users are generally seen as more loyal advocating a consistent experience across multiple Apple devices. This is due to Apple’s strict regulations on app submissions, push notifications, and system update timeframes. iOS users prefer straightforward, intuitive apps.

Google, on the other hand, allows developers to submit and update apps and app descriptions freely. Android focuses more on a customizable experience impressing a specific type of users.

While Apple users generally vouch for consistency and uncomplicated nature in apps, Android users would want freedom and customizability.

User demographics

Android currents holds the largest market share among mobile platforms, with a dominant position on developing nations. iOS users typically have large incomes which explains why they are willing to spend more money on in-app purchases. They also exhibit more in-app engagement.

Developers shouldn’t overlook market research factors like user location, income, and education which can impact engagement. This also influences the type of apps a user is likely to download and use.

In-app engagement

Mobile user engagement in Android and iOS is also different. Apple users have been found to engage more with several types of content, while Android boasts of higher media users in leading content categories. The performance of an app when achieving its goals and serving its purpose also influences user engagement to an extent. Goals like registration, purchase, subscription, in-app purchases etc. vary between Android and iOS.

iOS clearly dominates when it comes to user engagement, while Android still manages to satisfy. Developers would again have to consider the goal and purpose of their mobile app, and how they intend to monetize the app in order to choose the right platform.


The insights from just a few questions can help developers craft the right kind of app for the right platform for maximum effectiveness. If revenue generation or user engagement is the goal, iOS is the way to go. Android, on the other hand, is all about utility, performance, customizability, and productivity.

If an Android app manages to balance all these user preferences, users are likely to spend much more than iOS users. To leverage mobile technologies for business benefits, user behavior analysis is certainly a great approach.

Written by: verbat

Complete testing of a software or mobile app ensures that it serves the purpose it was built for, while meeting all requirements without compromising quality or functionality. For this, testers perform a variety of feasible tests based on pre-determined testing strategies and the availability of resources. The entire software testing process provides an overview of the quality of the software and its risk of failure to end-users and stakeholders.

Among the many types of testing employed, black box and white box testing are typically the most common in almost all software development projects. Let’s explore what it is that both these testing types are for, and their key differences.

Black box testing

Testers perform black box testing when they don’t have any information about how the software works internally. The high level testing technique tests the behavior of the software when it’s subjected to various conditions. The tests are conducted from an end-user or external user’s perspective. Black box testing can be performed on virtually every aspect of software testing including unit and integration testing, system testing, and acceptance testing. It’s also known as box testing or functional testing.

White box testing

White box testing is generally considered as low-level testing. It tests the internal functioning of the software, and is based on coverage of code statements, branches, paths, conditions etc. White box testing is also known as glass box, transparent box, or code base testing. Inputs are chosen to exercise paths through the software’s code to get desired outputs. It’s usually done at the unit level though in some cases, it’s also applied at integration and system levels.

Key differences between the two

Internal & External

Black box testing tests the external behavior of the software while the testers have no knowledge of the internal structure or behavior of the product. Testers who know the internal structure of the product performs white box testing.

Programming & implementation knowledge

Testers performing black box testing need not possess programming knowledge or implementation knowledge to do so. However, to perform white box testing, programming knowledge and implementation knowledge are mandatory.

Automation prospects

Black box testing is considered as an advanced testing technique where programmers and testers need to be involved directly. This makes it challenging to automate black box testing. White box testing, on the other hand, can be automated and is quite easy to do so as well.

Major techniques

Black box testing can generally use one of the three following techniques:

  • Boundary Value Analysis: Focus on testing the input boundaries that are most likely to end up giving erroneous outputs.
  • Equivalence Class Partitioning: Focus on identifying and classifying errors so as to reduce test cases.
  • Error Guessing: Focus on finding defects first and developing corresponding test cases.

When it comes to white box testing, the tester’s knowledge about the system allows him to develop test cases to discover internal defects. The techniques involved include:

  • Statement Tests: Every statement within the code should have a test associated to it, and each statement must be executed in a test cycle.
  • Decision Tests: All decision directions should be executed in a test cycle.
  • Branch Condition Tests: The conditions associated with a specific decision should be tested to see if they are working properly.
  • Data Flow Tests: All variables and data within the system are tested.
  • Multiple Condition Tests: Each point of entry within the code is tested in a test cycle.



Many software development companies tend to not completely perform black box testing especially when there are time constraints. They instead do some quick tests to see if the software’s core features are functional. Some companies perform neither black box nor white box testing but instead implements grey box testing – a combination of black box and white box testing done only at the interface level.

In this age, product quality and usability are more important than ever which demands great effort from testers into ensuring that the end-product was built the right way, with the right functionalities, and without defects.

Written by: verbat

A good majority of modern day enterprise IT and widely used technologies rely on open source software. Open source has made its presence very well known across networking, virtualization, and more. Open source development services still enjoy great demand, and the community keeps on growing bigger. However, enterprise security systems are still dominated by proprietary and vendor-locked technologies. Fortunately, change in times has brought change in trends as well.

There are a growing number of free open source security tools that are fully capable of both addressing security needs and protecting network, hosts, and data of the enterprises just as good as any proprietary security software. Some of these projects are backed by renowned organizations including major cloud operators and leading security firms.

That said, here are 4 open source security tools you should know about.

Commit Watcher

Accidental credential disclosures can end up causing a lot of damage for an organization. There have been reports of people accidentally exposing confidential information. One example is when private Amazon Web Services keys, passwords etc. were exposed after having them uploaded to GitHub or other repositories. Even developers may unintentionally do this.

The Commit Watcher open source tool from SourceClear can be a good solution for such mishaps, particular applicable during software development and testing cycles. The tool scans for potentially hazardous commits in both public and private Git repositories. This allows developers and project managers to monitor their projects for accidental credential disclosures. It periodically scans new commits and searches for matches against phrases or keywords defined in the project’s rules. Commit Watcher can be useful in testing enterprise software development projects that handle confidential data.


Keeping secrets out of the code is a key responsibility of developers. Even if they keep the ‘secrets’ in a configuration file, they should still ensure that the file isn’t committed to the code repository. They can add the config file to the .gitignore list to avoid it being committed to the repository. The secrets could be anything including keys that connect to aspects like payment systems, virtual machines, emailers etc. They are to be manually placed on application servers and managed separately from the source code which in turn can present a lot of challenges.

Jak can tackles this issue by allowing developers to commit encrypted ‘secret’ files into Git rather than use .gitignore. The files are included in a jakfile, and Jak ensures that only the encrypted file versions end up committed to the repository. The tool also handles encryption and decryption. Though the tool can be still challenging to use in production, it’s nevertheless useful for developers.


An open source project from GoDaddy, ProcFilter can address the challenge of defending against known threats in Windows environments. It runs as a Windows service and integrates with Microsoft’s ETW (Event Tracing for Windows) thereby logging activities directly into Windows Event Log. The tool can also be configured to scan memory and files whenever processes are created or terminated.

ProcFilter is not a replacement to an antimalware tool, but is more useful as a tool to focus on specific known threats that can potentially compromise the project. For instance, if a peer organization has been hit by a particular threat, you can use ProcFilter to defend against it should it target your organization.


Yara is mainly used to identify and group malicious files. However, it can do more than that. The open source tool from VirusTotal’s Víctor Manuel Álvarez can be very useful for forensic investigations. The user will be able to create rules and Yara performs scans looking for matches. In addition, Yara can also use the virus signature files of popular open source antivirus tool ClamAV. Many more rule sets are also available from the YaraRules repository maintained by the community. However, as there are still some limitations to signature-based threat detection, it would not be wise to rely on Yara to defend from malicious attacks. That’s where ProcFilter can be of use.


Open source technologies are obviously competent in the security department as well, and the tools mentioned above are just a few of the more popular ones. The community behind most open source tools comprises of several big brains including security experts and analysts. Open source security tools are anticipated to bring better changes in the coming times. For developers, familiarizing with the aforementioned tools would be a great way to prepare for an open source-influenced future.

Written by: verbat
Page 9 of 42« First...891011203040...Last »