<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Diana Maltseva</title>
    <description>The latest articles on DEV Community by Diana Maltseva (@dianamaltseva8).</description>
    <link>https://dev.to/dianamaltseva8</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F27719%2F2df95fce-422c-4011-a33b-993637a0de5f.jpg</url>
      <title>DEV Community: Diana Maltseva</title>
      <link>https://dev.to/dianamaltseva8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dianamaltseva8"/>
    <language>en</language>
    <item>
      <title>Software testing tasks, process, tools for QA engineers</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Thu, 14 Feb 2019 14:29:52 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/software-testing-tasks-process-tools-for-qas-54m9</link>
      <guid>https://dev.to/dianamaltseva8/software-testing-tasks-process-tools-for-qas-54m9</guid>
      <description>&lt;p&gt;How often in life have you faced last-minute problems arising from someone’s mistakes, staff incompetence, unaccounted risks? Delays in project launch? &lt;/p&gt;

&lt;p&gt;The same goes for software development. If some feature wasn’t fully tested, some bug was missed, the product wasn’t checked on all devices – trouble is brewing.  &lt;/p&gt;

&lt;h2&gt;Tasks of a QA engineer&lt;/h2&gt;

&lt;p&gt;Testers play no less important role than programmers. Even if developers wrote quality code, run the app on the device, and saw that everything was working, the fully functioning system is still far away.&lt;/p&gt;

&lt;p&gt;Why do some applications (that even seem to be good and quality) get flows of negative reviews after launch? Often one of the reasons is that the app looks or works differently on different devices.&lt;/p&gt;

&lt;p&gt;The situation is getting worse due to the fact that the market is full of various devices. Let’s say someone launched the product on an old Huawei and saw an ugly layout on it.&lt;/p&gt;

&lt;p&gt;Or it was installed by a user from Saudi Arabia, who didn’t understand anything, as the text in this country is read from right to left, and the interface wasn’t customized to this cultural peculiarity.&lt;/p&gt;

&lt;p&gt;&lt;i&gt;You’ve probably heard of the failure of the Coca-Cola advertising campaign because of it, but know – it isn’t true. A few years ago, this case spread throughout the Internet, many authors included it in the lists of the most famous advertising campaign failures, but it’s not confirmed by any trusted source.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;So, who will &lt;a href="https://blak-it.com/blog/how-does-the-blakit-software-testing-process-look-like/"&gt;check the system functioning in all conditions?&lt;/a&gt; Find bugs and vulnerabilities? Consider a variety of untypical cases? And, what’s more, ensure that the product complies with the customer requirements? The tester is the very person who is responsible for these tasks.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;The goals&lt;/b&gt; of a QA engineer are to achieve the correct system functioning, prevent defects, improve software quality, and throughout the project provide the end customer with the information about its quality.&lt;/p&gt;

&lt;p&gt;The tester must also ensure that a software solution works as intended. For this purpose, he/she compares the actual system behavior with the expected one using various types of testing.&lt;/p&gt;

&lt;h2&gt;The tasks of a tester&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Identify bugs and errors, describe and send for revision&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check the implemented improvements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test the product until the desired result is achieved&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test the software solution on all necessary devices and screen resolutions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check the product performance in various conditions, including the use of the key system functionality and testing it for different untypical use cases&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test the product compliance with the requirements&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Work through all uncharacteristic cases and ensure the product functions as intended&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;The feature testing life cycle looks as follows:&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The programmer delivers the developed feature for testing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;QA tests the implemented feature&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;QA creates a bug report for each detected bug&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Priorities of bugs and features are set&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Product debugging – programmers fix bugs and prepare the build&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Feature testing. If bugs are found, the testing and debugging processes are repeated. When everything works well, the feature is marked as implemented.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Some useful tools for software testing&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;Postman + Newman + Jenkins&lt;/b&gt; – this combination is used to automate API testing. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;Cucumber + Appium&lt;/b&gt; – applied for automating mobile app testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://www.charlesproxy.com/"&gt;Charles&lt;/a&gt;&lt;/b&gt; – allows testers to monitor HTTP/HTTPS traffic. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://www.pict.com.pk/"&gt;PICT&lt;/a&gt;&lt;/b&gt; – a very convenient tool for testing values (and their combinations) of the checked parameters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;Apache JMeter, YandexTank&lt;/b&gt; – enable to test the application performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;JUnit, NUnit&lt;/b&gt; – serve for writing unit tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://www.telerik.com/fiddler"&gt;Fiddler&lt;/a&gt;&lt;/b&gt; – used to test requests and services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://chrome.google.com/webstore/detail/perfectpixel-by-welldonec/dkaagdgjmgdmbnecmcefdhjekcoceebi?hl=en"&gt;Pixel Perfect&lt;/a&gt;&lt;/b&gt; – a browser extension that helps test layout.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://portswigger.net/burp"&gt;Burp Suite&lt;/a&gt;&lt;/b&gt; – a great tool for testing system security.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;Checklist&lt;/b&gt; – QAs can either compile checklists specifically for the project needs or use already prepared checklists, customizing them for the tasks. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://get.fabric.io/"&gt;Fabric Crashlytics&lt;/a&gt;&lt;/b&gt; – a popular tool for sharing builds within the team and collecting user statistics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;b&gt;&lt;a href="https://www.getpostman.com/"&gt;Postman&lt;/a&gt;&lt;/b&gt; – a set of tools for testing API. It helps test the functionality before integrating API into the client app. It also enables to create API documentation, write and run tests, and replace real data from the server with test values.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also, get insight into &lt;b&gt;&lt;a href="https://blak-it.com/blog/how-does-the-blakit-software-testing-process-look-like/"&gt;the software development and testing processes in our company.&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;

</description>
      <category>qa</category>
      <category>appdev</category>
      <category>testing</category>
      <category>programming</category>
    </item>
    <item>
      <title>Launching AR mobile app: GMoney, a currency converter in AR technology</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Tue, 15 Jan 2019 19:45:58 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/launching-ar-mobile-app-gmoney-a-currency-converter-in-ar-technology-1p44</link>
      <guid>https://dev.to/dianamaltseva8/launching-ar-mobile-app-gmoney-a-currency-converter-in-ar-technology-1p44</guid>
      <description>&lt;p&gt;Today AR app development is gaining high popularity. More and more AR startups and initiatives are appearing on the market. But to get success and bring income they must add value to the users, that is - solve their problems or facilitate their life. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://itunes.apple.com/us/app/id1430788405"&gt;GMoney&lt;/a&gt; is a new iOS application based on Augmented Reality. When focusing the camera on the banknote, the app automatically shows a current exchange rate of the currency you need. Sounds amazing, isn’t it? Just imagine, how it can be useful for travelers and businessmen!&lt;/p&gt;

&lt;h3&gt;GMoney features:&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;calculation of the exchange rate by focusing a camera on the banknote&lt;/li&gt;
&lt;li&gt;banknote recognition&lt;/li&gt;
&lt;li&gt;automatic conversion&lt;/li&gt;
&lt;li&gt;support for many currencies&lt;/li&gt;
&lt;li&gt;updating courses&lt;/li&gt;
&lt;li&gt;Siri shortcuts&lt;/li&gt;
&lt;li&gt;voice dictation&lt;/li&gt;
&lt;li&gt;can work offline&lt;/li&gt;
&lt;li&gt;AR banknotes frames&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The app was &lt;a href="https://www.producthunt.com/posts/gmoney"&gt;launched on Product Hunt&lt;/a&gt;: now it has about 250 upvotes! And the number is growing.) On the occasion of GMoney release, here is a short interview with the project owner, &lt;a href="https://www.linkedin.com/in/sashakhotiashov/"&gt;Sasha Khotiashov&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Sasha, why did you decided to create GMoney?&lt;/b&gt; &lt;/p&gt;

&lt;p&gt;The idea came into mind when my friend came to Belarus and had difficulties with the local currency when he had to pay in cash. &lt;/p&gt;

&lt;p&gt;At some point, I thought that I could build an application that would allow users to avoid calculations. How easy it is to hover a smartphone over a banknote and instantly see the result! &lt;/p&gt;

&lt;p&gt;&lt;b&gt;How does the product work?&lt;/b&gt;  &lt;/p&gt;

&lt;p&gt;The app instantly recognizes currency and speaks the denomination, allowing people experiencing visual impairments or blindness to easily identify and count bills. Point the camera of your smartphone at a bill and the application will tell you the denomination in real-time.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Who developed the app? How much time was spent on it?&lt;/b&gt; &lt;/p&gt;

&lt;p&gt;I’m an iOS developer, so there was no need in looking for someone else - I created the app myself. The design was made by my sister. The entire project development took 2 months. Now the goal is to attract users and collect feedback.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;AR app development is a hot topic. What technologies did you use?&lt;/b&gt;  &lt;/p&gt;

&lt;p&gt;I wrote GMoney in Swift and used text to speech. To implement the app in AR, I developed it on &lt;a href="https://developer.apple.com/arkit/"&gt;Apple ARKit&lt;/a&gt; SDK. I worked with it before and can say that it’s one of the best tools for building AR applications. &lt;/p&gt;

&lt;p&gt;Supporting iOS 11 and 12, it requires a device camera, motion sensors, and hardware to enable product functionality. The framework also supports 2-dimensional image detection, 2D image tracking, and object detection and tracking. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;What currencies does the mobile app support?&lt;/b&gt;  &lt;/p&gt;

&lt;p&gt;Now GMoney supports 10 currencies: the US Dollar, Australian Dollar, Belarusian Ruble, British Pound, Canadian Dollar, Euro, Japanese Yen, Mexican Peso, New Zealand Dollar, Russian Ruble, and Singapore Dollar.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Where can users find GMoney?&lt;/b&gt;  &lt;/p&gt;

&lt;p&gt;The app &lt;a href="https://itunes.apple.com/us/app/id1430788405"&gt;lives on the App Store&lt;/a&gt; - it’s available for free. You can also find it &lt;a href="https://www.producthunt.com/posts/gmoney"&gt;on Product Hunt&lt;/a&gt;. By the way, now got almost 250 upvotes. Perhaps, while you’re reading the article, the number is already higher.)&lt;/p&gt;

&lt;p&gt;Try the app out and share your thoughts and comments on PH, it would be great! Also, you’re welcome to contact me regarding the product, AR, and the app promotion on Product Hunt! &lt;/p&gt;

</description>
      <category>ar</category>
      <category>ios</category>
      <category>startup</category>
      <category>technology</category>
    </item>
    <item>
      <title>Single-page applications: Benefits &amp; Technology stack</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Wed, 07 Nov 2018 16:33:12 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/single-page-applications-benefits--technology-stack-nhb</link>
      <guid>https://dev.to/dianamaltseva8/single-page-applications-benefits--technology-stack-nhb</guid>
      <description>&lt;p&gt;The world of software is constantly evolving and changing. Just a few years ago desktops and laptops have been the main devices all the web solutions were developed for. It’s quite a bit different today, though. Web applications are gradually taking place of the old-fashioned desktop applications.&lt;/p&gt;

&lt;p&gt;Why? Because they are universal for all the devices, they are cloud-based and generally more user-friendly. Some might say, browser-based web applications already start losing to mobile ones with many casual users.&lt;/p&gt;

&lt;p&gt;But the truth is, web apps are alive and the demand for them is quickly increasing. If you consider outsourcing web application development for your business, you are probably aware that there are 2 general ways web applications can be built: they can be designed as either multi-page applications (MPA) or single-page applications (SPA). And, like all the things in life, both design types have their own advantages and disadvantages.&lt;/p&gt;

&lt;p&gt;Some important decisions need to be made before you begin implementing your ideas. To decide what app model suits your business best, you should always consider the content your customers appreciate, because without it presented properly you just won’t attract your clients to use the app.&lt;/p&gt;

&lt;p&gt;Hence the essential questions are: what content you want to promote to your target audience and what your users are concerned about.&lt;/p&gt;

&lt;p&gt;As I noted above, both SPA and MPA have their own advantages and disadvantages. Let’s try to clear the difference between the 2 types and try to find the right web development solution for your business.&lt;/p&gt;

&lt;h3&gt;Single-Page Applications&lt;/h3&gt;

&lt;p&gt;A single-page application is an app working inside a browser and not requiring page reloading when being used. Some of them are used by millions and billions of users every day without even noticing it. GitHub, Gmail, Google Maps, Facebook are the most remarkable examples.&lt;/p&gt;

&lt;p&gt;Apps of this type are customized to ensure great UX like a “natural” browser environment —  without any page reloads - no time lag for interactions. Generally, it looks like a single web page that loads the rest of the content with the help of JavaScript.&lt;/p&gt;

&lt;p&gt;SPA requests webpage markup and data independently and renders pages directly in the browser. It is achieved thanks to advanced JavaScript frameworks like &lt;a href="https://github.com/angular/angular.js" rel="noopener noreferrer"&gt;AngularJS&lt;/a&gt;, Ember.js, Meteor.js, Knockout.js.&lt;/p&gt;

&lt;p&gt;However, you can successfully use React, too. The biggest advantage of React is accessibility. React is pretty easy to use. Basically, any developer familiar with HTML can create React-based applications.&lt;/p&gt;

&lt;p&gt;Another perk is the opportunity to create web and mobile applications using the same technology stack. We use React with Redux library, which lets developers establish a good foundation and build complex, but high-scalable web solutions.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://blak-it.com/blog/spa-advantages/" rel="noopener noreferrer"&gt;Single-page and multi-page applications.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, here you can find &lt;a href="https://reactjs.org/docs/getting-started.html" rel="noopener noreferrer"&gt;React documentation.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Why use Kotlin for Android development? Kotlin benefits, features, versions</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Thu, 04 Oct 2018 15:51:03 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/why-kotlin-for-android-development-kotlin-benefits-features-versions-24oj</link>
      <guid>https://dev.to/dianamaltseva8/why-kotlin-for-android-development-kotlin-benefits-features-versions-24oj</guid>
      <description>&lt;p&gt;In accordance with &lt;a href="https://insights.stackoverflow.com/survey/2018/"&gt;Stack Overflow Developer Survey 2018&lt;/a&gt;, Kotlin is the 2nd most loved programming language and the 4th most wanted in the world. &lt;/p&gt;

&lt;p&gt;Recently, TechBeacon digital platform included it in the list of &lt;a href="https://techbeacon.com/5-emerging-programming-languages-bright-future"&gt;5 emerging languages with a bright future&lt;/a&gt;. In 2017, at Google I/O annual conference, Kotlin was announced as an official language for Android development.&lt;/p&gt;

&lt;p&gt;Uber, Trello, Basecamp 3, Shadowsocks, Evernote, Pinterest, and Coursera have already used Kotlin in their Android applications. Why is Kotlin becoming so popular? What great functions does it include? &lt;/p&gt;

&lt;p&gt;Perhaps, you should think about learning this technology and/or moving your projects to it? Let's get deeper in the question, &lt;a href="https://blak-it.com/blog/why-use-kotlin-for-android-development/"&gt;Kotlin advantages, features, and versions.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kotlin is a statically-typed programming language, created by JetBrains company, located in San-Petersburg. Providing full compatibility with Java, it runs on the JVM (Java Virtual Machine), enables to write less code, has readable syntax, and can be compiled to JavaScript source code. &lt;/p&gt;

&lt;h3&gt;The main advantages of Kotlin&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;1. Kotlin allows writing less code&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Less code is important but there is readability that also should be considered and desirably improved. With Kotlin, you receive them both. JetBrains did their best to make the language as concise as possible, and they managed to do it.&lt;/p&gt;

&lt;p&gt;Less code, when done right, results in fewer bugs. When you let framework take care of certain mundane aspects of coding, you can focus on more important things. Kotlin is all about high readability, simplicity, and the facilitation of the app development process.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;2. It solves developer challenges&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Kotlin came from the industry, not academia. JetBrains needed a simpler tool than Java to work with their main product, called IntelliJ IDEA, totally written in it. &lt;/p&gt;

&lt;p&gt;They investigated the alternatives, stayed unsatisfied, and decided to invent their own language. The goal was to get an effective tool that could be used together with Java and work everywhere where Java can. &lt;/p&gt;

&lt;p&gt;So, Kotlin solves challenges faced by programmers. For instance, the type system helps you avoid null pointer exceptions. Research academic languages tend to not have null at all, but this is of no use to software engineers working with large codebases and APIs which do.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;3. Adopting Kotlin is easy&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;If you want to facilitate the product maintenance or streamline custom Android app development, you can assign two or three engineers to move the project to Kotlin starting from a small part of the code base.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;4. Kotlin is fully compatible with Java&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Another advantage is that Kotlin programming language is fully compatible with Java. Kotlin developers have access to all Java frameworks and libraries while writing more clear and concise code.&lt;/p&gt;

&lt;p&gt;So, Android engineers can use both languages when building a mobile product as well as migrate their applications from Java to Kotlin.&lt;/p&gt;

&lt;p&gt;Even if you have a large Java-based project with millions of code lines, you can easily convert it to Kotlin one file at a time and you’ll see everything still successfully compiling. &lt;a href="https://blak-it.com/"&gt;Here in BLAKIT&lt;/a&gt;, we write our code in Kotlin and use Java only for maintaining old projects.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;5. It imposes no runtime overhead&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The standard library is small and tight: it consists mostly of focused extensions to the Java standard library. Heavy use of compile-time inlining means functional constructs like pipelines of map/filter/reduce compile similarly to an imperative version of the same code.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;6. Kotlin has a strong community&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;JetBrains are constantly improving the language. It's committed to the project, has a large and highly competent team working on it, has a stable business model and is even converting parts of their own flagship product to use it. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;7. Kotlin suits for the multi-platform development&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Android development isn’t the only thing you can use Kotlin for. The language provides JavaScript support and interoperability, enabling developers to move their frontends to Kotlin or create them in it from the very project beginning.&lt;/p&gt;

&lt;p&gt;What's more, the founders added Gradle support so that you can write Gradle files in Kotlin. They are actively developing &lt;a href="https://github.com/JetBrains/kotlin-native"&gt;Kotlin/Native&lt;/a&gt;, which allows building iOS applications. This way, you can write even native apps in this language, too.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;8. Kotlin development offers more safety&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The Kotlin developers integrated into the semantics the principles that prevent a variety of common mistakes usually happening during the program execution. Another reason for Kotlin higher level safety (comparing to Java) lies in its benefits.&lt;/p&gt;

&lt;p&gt;It enables the implementation of the same tasks with less time and effort. When the code is more simple and easy-to-understand, errors are more difficult to make and much easier to find, so the chances for them significantly decrease. &lt;/p&gt;

&lt;p&gt;Also, check out &lt;b&gt;&lt;a href="https://blak-it.com/blog/why-use-kotlin-for-android-development/"&gt;the review of Kotlin useful features and the latest versions.&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;

</description>
      <category>kotlin</category>
      <category>appdev</category>
      <category>androiddev</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to develop a crypto wallet application</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Wed, 08 Aug 2018 13:17:36 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/building-a-crypto-wallet-app-featurestoolstips-1iha</link>
      <guid>https://dev.to/dianamaltseva8/building-a-crypto-wallet-app-featurestoolstips-1iha</guid>
      <description>&lt;p&gt;Blockchain, the technology behind &lt;a href="https://bitcoin.org/bitcoin.pdf"&gt;Bitcoin&lt;/a&gt;, joins decentralization, cryptography, and distributed digital data record, allowing the removal of any third party, traceability of transactions, and safe data storage.&lt;/p&gt;

&lt;p&gt;With all these benefits taking the center stage in the business world, companies start using cryptocurrency transactions. &lt;/p&gt;

&lt;p&gt;Wishing to take a competitive advantage, Amazon, Zappos, WordPress, Expedia, and Bloomberg have already integrated crypto transactions into the work and now offer them together with other online payment methods.&lt;/p&gt;

&lt;h3&gt;Benefits of cryptocurrency payments&lt;/h3&gt;
 

&lt;ol&gt;
&lt;li&gt;Transferring digital currencies is easier and takes less time&lt;/li&gt;
&lt;li&gt;Transactions are cheaper&lt;/li&gt;
&lt;li&gt;Transactions are decentralized. It means that there is no regulatory body (government) or a central authority that controls them. &lt;/li&gt;
&lt;li&gt;Transactions are completely anonymous and fully encrypted&lt;/li&gt;
&lt;li&gt;Transactions provide the highest security level as users are protected from fraud and data distortion&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In speaking on the 5th point, I'd like to take a closer look. It implies that nobody can steal your money without special keys – one public and one private – only you possess them. &lt;/p&gt;

&lt;p&gt;Also, each transfer contains a user digital signature. Once the cryptocurrency is uploaded on the network, all the data about the transaction is fixed and recorded on the ledger with no ability to be changed or deleted. &lt;/p&gt;

&lt;p&gt;Unfortunately, there are some issues that a bit disrupt such an attractive picture, for instance, fluctuations in cryptocurrency exchange rates. You needn’t look hard to find examples – take Bitcoin, the most visible illustration of high ups and downs!  &lt;/p&gt;

&lt;p&gt;However, there are always useful services offering good ways for conversion to the currency users would like to receive. So, you can bypass this challenge by integrating such a service into the ap. &lt;/p&gt;

&lt;p&gt;Since almost every cryptocurrency provides its own e-wallet, you can either integrate some to use for payments or build your own Bitcoin wallet like application according to your business requirements.&lt;/p&gt;

&lt;p&gt;If you don’t need something extraordinary and have several simple tasks to solve, choose the first option. If you need more complex functionality and have more specific challenges, you should think about developing your own solution.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;A crypto wallet generally has such basic features as:&lt;/b&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;user authorization &lt;/li&gt;
&lt;li&gt;the wallet itself &lt;/li&gt;
&lt;li&gt;private keys for user cryptocurrencies&lt;/li&gt;
&lt;li&gt;multicurrency support&lt;/li&gt;
&lt;li&gt;conversion rates &lt;/li&gt;
&lt;li&gt;the ability to view cryptocurrency balance any time&lt;/li&gt;
&lt;li&gt;QR code scanner (to send and request money)&lt;/li&gt;
&lt;li&gt;push notifications&lt;/li&gt;
&lt;li&gt;backup and restoration function&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;How to choose technologies&lt;/h3&gt;
 

&lt;p&gt;If you want to build a crypto wallet application, you should make it for the two most popular operating systems – iOS and Android. Many companies also choose the web to attract more users and provide the highest level of convenience. &lt;/p&gt;

&lt;p&gt;Generally, the backend part is designed with the use of Java or Node.js. Also, there are useful libraries available (&lt;a href="https://github.com/rsbondi/chain-java"&gt;Chain-java&lt;/a&gt;, &lt;a href="https://bitcoinj.github.io/"&gt;BitcoinJ&lt;/a&gt;, etc.) that contain most features required for crypto wallet app development.&lt;/p&gt;

&lt;p&gt;The frontend is usually based on Angular or React. Another technology, called &lt;a href="https://facebook.github.io/react-native/"&gt;React Native&lt;/a&gt;, has become very popular recently. A plus is that it enables to create modern interfaces faster and easier while saving both costs and quality. &lt;/p&gt;

&lt;p&gt;When using React Native, a developer makes only one application that can run on both iOS and Android.&lt;/p&gt;

&lt;p&gt;Let’s consider the technology stack used for Blockchain wallet, one of the most famous applications in this category. The backend was created with the help of Java, Clojure, and Node.js, a frontend part was implemented with AngularJS, while the database is &lt;a href="https://www.mysql.com/"&gt;MySQL&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When building an iOS application, blockchain developers used several tools, namely Storyboards, JSBridgeWebView, while for Android they chose Gradle, Apache Commons, and Junit.&lt;/p&gt;

&lt;p&gt;In most cases, it’s better to begin with &lt;a href="https://smartym.pro/blog/custom-mobile-app-development-why-should-begin-with-mvp/"&gt;building MVP&lt;/a&gt; (minimum viable product), meaning only the key functionality will be realized in the first version. &lt;/p&gt;

&lt;p&gt;Find out other important recommendations to &lt;a href="https://smartym.pro/blog/blockchain-development-how-to-create-a-bitcoin-wallet-like-application/"&gt;crypto wallet app development.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>crypto</category>
      <category>appdev</category>
      <category>bitcoin</category>
    </item>
    <item>
      <title>Top 5 Strategies to Monetize a Mobile App</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Wed, 25 Jul 2018 13:22:10 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/top-5-strategies-to-monetize-a-mobile-app-2fo7</link>
      <guid>https://dev.to/dianamaltseva8/top-5-strategies-to-monetize-a-mobile-app-2fo7</guid>
      <description>&lt;p&gt;Hi everyone! In my small blog on this amazing website, I generally cover such topics as software development, blockchain development and use cases, security issues, and technology trends. &lt;/p&gt;

&lt;p&gt;Though the creation of mobile apps is one of the key things I enjoy talking about, in this post, I'd like to write about monetization strategies as well as provide you with meaningful (I hope) tips of how to choose the best one for your application. &lt;/p&gt;

&lt;p&gt;This will be a republication of my article &lt;a href="https://magazine.startus.cc/best-strategies-monetize-mobile-app-2018/"&gt;"These Are The 5 Best Strategies To Monetize Your Mobile App In 2018"&lt;/a&gt; I wrote for Magazine Startus, that the audience found useful. I will appreciate if you share opinions and experiences in the comments below the post.) Let's start.&lt;/p&gt;

&lt;p&gt;The global mobile app market has never been as competitive as it is today. What’s more, by 2020 it is expected to &lt;a href="https://codetoart.com/trend-report-mobile-app-development-in-2018/"&gt;reach $188.9 billion!&lt;/a&gt; However, the percentage of successful apps is very low - about 0.01%. &lt;/p&gt;

&lt;p&gt;While some product categories like shopping and productivity are seeing an increase in use, the popularity of certain categories that did well earlier, for example, mobile games and lifestyle apps, has declined recently. Why?&lt;/p&gt;

&lt;p&gt;In the past, it was simple enough to make a profit by launching an app with a cool and innovative idea. Users didn’t expect something extraordinary and weren’t so pampered with thousands of seductive offers. &lt;/p&gt;

&lt;p&gt;Today, you need to consider various factors, from &lt;a href="https://smartym.pro/blog/how-to-write-software-requirements-document/"&gt;preparing a quality technical specification&lt;/a&gt; and &lt;a href="https://smartym.pro/blog/8-useful-features-to-implement-in-enterprise-mobile-apps/"&gt; defining the product functionality&lt;/a&gt; to choosing the right monetization strategy.&lt;/p&gt;

&lt;p&gt;Monetization is crucial for the product’s future – only one out of a hundred makes money. If the application meets user expectations but is monetized improperly, it will have many users, but won’t bring money. &lt;/p&gt;

&lt;p&gt;For years, developers have been struggling to define the best monetization strategy. So, is there a truly successful way to monetize a mobile app?&lt;/p&gt;

&lt;h3&gt;1. Pay Per Download&lt;/h3&gt;

&lt;p&gt;Probably, this strategy is the easiest way to monetize a mobile application. When publishing the app on Google Play or the App Store, you set up the price (from $0,99) that users will have to pay for downloading.&lt;/p&gt;

&lt;p&gt;As the product owner, you receive income once users start downloading it. Although people are always more reluctant to pay for something they haven’t tried before, paid apps’ users are generally more loyal.&lt;/p&gt;

&lt;p&gt;Since the profit directly depends on the number of downloads, a big challenge is to attract a lot of users and engage them. &lt;/p&gt;

&lt;p&gt;With millions of competitive apps, you’ll need &lt;a href="https://smartym.pro/blog/how-to-promote-a-mobile-app-pre-release-launch/"&gt;strong marketing activities&lt;/a&gt; to achieve great results. However, despite these difficulties, in 2017 paid apps have brought their owners $29 billion.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;When you should choose this monetization strategy:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The app provides a unique functionality that surpasses free apps’ offers – Before starting the development, make a competitor analysis and define the needs and preferences of your target audience. Your product should surpass similar ones and provide features that users will be ready to pay for, for example, offer improved user experience, unique features, or something else.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Strong marketing/PR presence – If your company has already had one or several successful apps that users love and enjoy, it will be much easier for you to promote a new product. They know your brand, are loyal to your products and have more willingness to pay.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thus, pay per download is the easiest model, the difficulty lies in convincing users to purchase the app. Keep persuasive factors such as positive user reviews, high ratings, strong social media presence in mind and ensure you have them integrated into your marketing campaign.&lt;/p&gt;

&lt;h3&gt;2. In-App Purchases&lt;/h3&gt;

&lt;p&gt;When using in-app purchases, the application serves as a sales channel or an online showcase. &lt;/p&gt;

&lt;p&gt;You can sell access to content or new features within the app, real products or services, or virtual items, for example, virtual money, extra lives in a gaming app, and more. For now, this monetization model is the most popular and accounts for over 50% of mobile app revenue.&lt;/p&gt;

&lt;p&gt;A challenge is to find the perfect balance between paid and free items in the product so that users can use the app for free, but are interested in making purchases.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;You should integrate in-app purchases if:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Purchases provide real value to users – If your application doesn’t imply something really engaging and very desired by the target audience, or isn’t associated with categories we will mention below, you should think about other monetization strategies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You have a shopping, messaging, or gaming app – These app categories imply having plenty of users and many interesting features. You can offer, for instance, funny sticker packs in a messaging app or extra capabilities within a gaming app.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Though just over 5% of mobile app users spend money on in-app purchases, the amount of revenue is 20 times higher than companies earn from all other users (on paid app downloads), &lt;a href="https://www.braze.com/blog/in-app-purchase-stats/"&gt;AppBoy survey&lt;/a&gt; reports.&lt;/p&gt;

&lt;h3&gt;3. Advertising&lt;/h3&gt;

&lt;p&gt;In the coming years, advertising will be all about the user experience. When using this model, developers need to define a balance between the number of advertisements, where they appear, and how users interact with them.&lt;/p&gt;

&lt;p&gt;By choosing this monetization model you keep the app free and attract more users. An important thing is to make advertisements responsive to the potential audience’s needs. &lt;/p&gt;

&lt;p&gt;For instance, in a sports men-oriented application advertising of baby goods or cosmetics will be weird and won’t bring results. Also, too many ads will reduce customer loyalty and result in negative feedback.&lt;/p&gt;

&lt;p&gt;In this model, the income can be based on advertising only, but product owners often prefer to use a combination of monetization strategies.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;You should use this monetization strategy if:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Your app is designed for a large audience, implying a high number of downloads and high retention rate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The app isn’t built for receiving revenue directly from users: It has no items, content, or features they will be ready to pay for.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;4. Freemium&lt;/h3&gt;

&lt;p&gt;The word ’Freemium’ comes from the merge of “Free” and “Premium”. In this monetization model, the app is free but offers premium functionality that has to be paid for. If the user wants to use additional features – they will need to pay.&lt;/p&gt;

&lt;p&gt;A strong point of this strategy is the user’s opportunity to check out the app without paying for it. To bring high revenue, your app should provide a great user experience and offer valuable features that users will want to use. &lt;/p&gt;

&lt;p&gt;A freemium strategy is often combined with advertising basis although in the paid version there cannot be any ads within the app.&lt;/p&gt;

&lt;p&gt;According to a recent &lt;a href="https://clutch.co/app-developers/resources/how-to-make-an-app"&gt;research by GLOBE NEWSWIRE&lt;/a&gt;, over 60% of mobile app developers recommend using the freemium model. Besides, it has been already successfully used by Evernote, Dropbox, MailChimp, and many others.&lt;/p&gt;

&lt;h3&gt;5. Subscription&lt;/h3&gt;

&lt;p&gt;This monetization strategy is similar to the freemium model. The difference is that a subscription model offers paid content. &lt;/p&gt;

&lt;p&gt;Users install the app for free, but with the limited amount of content (be it music, news, etc.) before being prompted to subscribe. Usually, the payment is rather low to motivate users to pay.&lt;/p&gt;

&lt;p&gt;At the moment, this strategy is experiencing an increasing interest. Analysts expect that between 2018 and 2021, mobile app subscriptions’ revenue will grow at a CAGR of 25% to &lt;a href="https://s3.amazonaws.com/files.appannie.com/reports/1704_Report_Market_Forecast_EN.pdf?mkt_tok=eyJpIjoiWVRGbU56QXpOemxqWm1NeCIsInQiOiJYNVlKTUMrWjdwdzdvYmhmUjlWQndOb0R1WG5yT0xzbGFXZFkrXC91U3AzTVE4THZ0N2NpUWFjSnNTV3BKdDRoRnJzc1ZNcG1KXC9MREpBaGxVcWxMdmxVZkpaRUFBTmE1c1BaM01DSE4wQ0d3NEhIQWRlU3RNczZHbERuTENaRjRYIn0%3D"&gt;reach approximately $34 billion by early 2022.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;A subscription model will be the best choice when:&lt;/b&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The app is content-driven: entertainment, music, news, service, or video apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The application implies a high number of downloads and high user retention rate.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Currently, the subscription model is becoming more complex. Most product owners establish several pricing tiers with many different features, which helps them persuade users to subscribe to a lower tier of membership.&lt;/p&gt;

&lt;h3&gt;Closing Thoughts For 2018&lt;/h3&gt;

&lt;p&gt;Observing the nearest future, developers will continue to benefit from the app economy with income from mobile app monetization set to grow throughout the coming years. Free apps will become the new normal and even must-have, so the use of pay per download model will decline in popularity.&lt;/p&gt;

&lt;p&gt;Another trend is that in 2018 product owners shouldn’t rely on a single model. Instead, more and more developers will need to integrate hybrid monetization strategies. In a changing market and fluctuating user needs, the focus on several strategies will provide stability.&lt;/p&gt;

&lt;p&gt;At last, the time users spend in their apps has already started to stagnate. According to &lt;a href="http://flurrymobile.tumblr.com/post/169545749110/state-of-mobile-2017-mobile-stagnates"&gt;Flurry’s survey&lt;/a&gt;, overall app session activity grew by only 6% in 2017.&lt;/p&gt;

&lt;p&gt;Also, users now spend their mobile time across a diverse variety of apps as nobody is happy with too many ads, high prices, and the lack of quality content. Due to the free to download culture that is taking the center stage now, developers will need to place more emphasis on the monetization experience.&lt;/p&gt;

</description>
      <category>appdevelopment</category>
      <category>mobileappmarketing</category>
      <category>mobileappdev</category>
      <category>techtalks</category>
    </item>
    <item>
      <title>Crypto-anchors - an innovative technology for supply chain security and visibility</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Mon, 23 Jul 2018 10:43:45 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/crypto-anchors---an-innovative-technology-for-supply-chain-visibility-37fg</link>
      <guid>https://dev.to/dianamaltseva8/crypto-anchors---an-innovative-technology-for-supply-chain-visibility-37fg</guid>
      <description>&lt;p&gt;At the moment security is one of the most important issues for companies in various industries and even countries. Unfortunately, fraud costs the global economy over $600 billion every year. &lt;/p&gt;

&lt;p&gt;Being under the risk of huge monetary losses, businesses are struggling to find and adopt technological solutions that will enable them to successfully fight against illegal practices.&lt;/p&gt;

&lt;p&gt;Only imagine, in some countries, 70% of certain life-saving pharmaceuticals are counterfeit! Why is it so? The answer lies in too complex and non-transparent supply chains. In large operations, they can include over 200 intermediary steps and dozens of suppliers from different countries.&lt;/p&gt;

&lt;p&gt;As a result, to trace the entire process that goods/products pass during their way from the production to the retail store (or hands of the customer) is pretty difficult, even impossible. &lt;/p&gt;

&lt;p&gt;Blockchain technology reveals &lt;a href="https://www.msn.com/en-ae/video/viral/put-simply-blockchain-technology-is-a-security-and-transparency-innovation/vp-BBJ8lce"&gt;a new era of security&lt;/a&gt; in a time when the integration of truly innovative security models is critically needed.&lt;/p&gt;

&lt;p&gt;Although blockchain can bring &lt;a href="https://smartym.pro/blog/blockchain-in-the-logistics-industry-how-hyperledger-sawtooth-works-for-supply-chains/"&gt;trust and visibility to supply chains across a variety of use cases&lt;/a&gt;, it can’t make everything alone, for example, provide the authenticity of goods.&lt;/p&gt;

&lt;p&gt;Crypto-anchors named one of &lt;a href="https://www.ibm.com/blogs/research/2018/03/ibm-research-5-in-5-2018/"&gt;5 key technology trends&lt;/a&gt; in a recent research by IBM, can become a solution to this challenge. Consisting of cryptographic mechanisms, they provide a high-security level and can add value across many industries.&lt;/p&gt;

&lt;p&gt;Within the next five years, crypto-anchors like ink dots or tiny computers (smaller than a grain of salt) will be built in multiple physical goods and even everyday devices and objects.&lt;/p&gt;

&lt;p&gt;They can be integrated into an edible shade of magnetic ink, which can be used to dye a malaria pill. Crypto-anchors will be used together with blockchain to ensure an object’s authenticity from its origin to the time it reaches the endpoint.&lt;/p&gt;

&lt;p&gt;Hope, the article has been useful to you.) The topic of security is very long and interesting, and crypto-anchors will play an important role in the part of it.&lt;/p&gt;

</description>
      <category>techtrends</category>
      <category>blockchain</category>
      <category>crypto</category>
      <category>security</category>
    </item>
    <item>
      <title>Graphene blockchain technology explained. Top advantages &amp; Major players</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Wed, 18 Jul 2018 14:40:33 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/graphene-blockchain-technology-explained-top-advantages--major-players-fkb</link>
      <guid>https://dev.to/dianamaltseva8/graphene-blockchain-technology-explained-top-advantages--major-players-fkb</guid>
      <description>&lt;p&gt;Nowadays almost everyone in the business world has already heard about “Blockchain”, “Bitcoin”, and “Ethereum”, wondering how they all work and how companies can take advantage of their integration.&lt;/p&gt;

&lt;p&gt;Being interested in blockchain dev and covering blockchain-related topics, here I'd like to take a look at another promising technology, called &lt;a href="https://en.wikipedia.org/wiki/Graphene"&gt;Graphene&lt;/a&gt; blockchain. Offering a plenty of benefits, it is expected to call a wave in Graphene-based projects.&lt;/p&gt;

&lt;p&gt;Can it handle thousands of transactions in a wink and move value fast? Can apps be built upon it? Can it potentially change the way we live? Can it call a boom in innovative business models? In speaking of Graphene, the answer is yes!&lt;/p&gt;

&lt;h3&gt;What is Graphene blockchain&lt;/h3&gt;
 

&lt;p&gt;Graphene is an open-source blockchain technology, mainly written in C++. Graphene source is available in numerous variations, as it has been forked and adapted a lot of times.&lt;/p&gt;

&lt;p&gt;There is no other known blockchain like Graphene that can even try to compete in the processing such a high number of transactions this blockchain already can. Although Bitcoin aid the foundation of a new industry, it doesn’t provide so many capabilities.&lt;/p&gt;

&lt;p&gt;Graphene-based coins can do something Bitcoin was never capable of and will never be. And that is being a real-time value exchange system that will get mass adoption, with great apps build upon it. In any case, old technology is good to learn from.&lt;/p&gt;

&lt;p&gt;Right now Graphene is able to push over 3000 transactions per second, versus Ethereum, currently at around 25 transactions per second. That means around 190000 transactions per minute. And that is not in the future, it is now!&lt;/p&gt;

&lt;p&gt;Want to see some bright examples of this top-notch blockchain technology at work? If you are on Steemit, a news aggregation site, and crypto-based platform, you are part of it already.&lt;/p&gt;

&lt;p&gt;BitShares, a cryptocurrency exchange marketplace, and Steemit came from the same technology base, both originally created by Daniel Larimer and now continued by other motivated and skilled developers.&lt;/p&gt;

&lt;h3&gt;The main Graphene players&lt;/h3&gt;
 

&lt;p&gt;&lt;b&gt;- &lt;a href="https://bitshares.org/"&gt;BitShares&lt;/a&gt;&lt;/b&gt; – a decentralized asset exchange (like the New York Stock Exchange on the blockchain).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;- &lt;a href="https://steemit.com/"&gt;Steemit&lt;/a&gt;&lt;/b&gt; – a decentralized social media platform (like Facebook on the blockchain).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;- &lt;a href="https://eos.io/"&gt;EOS&lt;/a&gt;&lt;/b&gt; – a decentralized smart contract platform (like banks, real estate, corporations, small businesses, and more on the blockchain).&lt;/p&gt;

&lt;p&gt;Also, find out what are &lt;b&gt;&lt;a href="https://smartym.pro/blog/what-is-graphene-blockchain-and-why-should-develop-a-graphene-based-project/"&gt;Graphene adavantages and what is Delegated Proof of Stake (DPoS).&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;

</description>
      <category>graphene</category>
      <category>blockchain</category>
      <category>programming</category>
      <category>technology</category>
    </item>
    <item>
      <title>Why use Swagger for creating and documenting APIs</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Mon, 09 Jul 2018 16:17:59 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/why-use-swagger-for-creating-and-documenting-apis-115l</link>
      <guid>https://dev.to/dianamaltseva8/why-use-swagger-for-creating-and-documenting-apis-115l</guid>
      <description>&lt;p&gt;API is the best way of connecting software engineers and sharing valuable data and developments. Through API, programmers access a network of shared pieces of code and useful experiences. However, to access them they need clear documentation.&lt;/p&gt;

&lt;p&gt;Noteworthy that earlier there was not only industry standard for developing APIs, but there was no standard for documenting them. &lt;a href="https://swagger.io/"&gt;Swagger&lt;/a&gt; emerged as an approach to building APIs and soon became the most popular framework for this purpose.&lt;/p&gt;

&lt;p&gt;Two years ago Swagger specification was renamed the OpenAPI Specification and moved to the Linux Foundation. &lt;/p&gt;

&lt;p&gt;What's important, a Swagger framework is supported by such corporations as Google, Microsoft, and Atlassian. Also, giants like Yelp and Netflix have already used it in their work.&lt;/p&gt;

&lt;h3&gt;What is Swagger&lt;/h3&gt;

&lt;p&gt;Swagger is the largest framework for designing APIs using a common language and enabling the development across the whole API lifecycle, including documentation, design, testing, and deployment.&lt;/p&gt;

&lt;p&gt;The framework provides a set of tools that help programmers generate client or server code and install self-generated documentation for web services.&lt;/p&gt;

&lt;p&gt;However, there are many other frameworks like RAML, APIBlueprint, Summation, etc. So, how to explain the huge popularity of Swagger? The answer is that it offers a lot of advantages and besides creating clear documentation provides other great things.&lt;/p&gt;

&lt;h3&gt;Swagger framework tools and benefits&lt;/h3&gt;
 

&lt;p&gt;First and foremost, as Swagger uses a common language that everyone can understand, it’s easily comprehensible for both developers and non-developers. &lt;/p&gt;

&lt;p&gt;Thus, software developers, product and project managers, business analysts and even potential customers can access API design.&lt;/p&gt;

&lt;p&gt;Also, as Swagger is easily adjustable, it can be successfully used for API testing and bug fixing. Another important point is that the same documentation can be used for accelerating various API-dependent processes.&lt;/p&gt;

&lt;p&gt;Swagger provides &lt;b&gt;a set of great tools&lt;/b&gt; for designing APIs and improving the work with web services:&lt;/p&gt;


&lt;li&gt;
&lt;a href="https://swagger.io/tools/swagger-editor/"&gt;Swagger Editor&lt;/a&gt; – enables to write API documentation, design and describe new APIs, and edit the existing ones. The first open-source editor visually renders OAS/Swagger definition with error handling and real-time feedback. &lt;/li&gt;


&lt;li&gt;
&lt;a href="https://swagger.io/tools/swagger-codegen/"&gt;Swagger Codegen&lt;/a&gt; – allows developers to generate client library code for different platforms. As the tool helps facilitate the dev process by generating server stubs and client SDKs, software engineers get the ability to faster build your API and better focus on its adoption.&lt;/li&gt;


&lt;li&gt;
&lt;a href="https://swagger.io/tools/swagger-ui/"&gt;Swagger UI&lt;/a&gt; – allows engineers to get self-generated documentation for different platforms. Swagger UI is a fully customizable tool that can be hosted in any environment. A great plus is that it enables developers to save a lot of time for API documentation.&lt;/li&gt;


&lt;li&gt;
&lt;a href="https://swagger.io/tools/swagger-inspector/"&gt;Swagger Inspector&lt;/a&gt; – a tool for testing and auto-generating OpenAPI documentation for any API. Swagger Inspector allows to easily validate and test APIs with no limits on what you test. Tests are automatically saved in the cloud with a simple access.&lt;/li&gt;

&lt;p&gt;Also, find out &lt;b&gt;&lt;a href="https://smartym.pro/blog/why-choose-swagger-framework-for-designing-and-documenting-apis/"&gt;how to set up Swagger and use it for designing APIs.&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;

</description>
      <category>swagger</category>
      <category>api</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>How to solve security issues. 5 Blockchain use cases in security</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Thu, 28 Jun 2018 17:02:45 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/how-to-solve-security-issues-5-blockchain-use-cases-in-security-348p</link>
      <guid>https://dev.to/dianamaltseva8/how-to-solve-security-issues-5-blockchain-use-cases-in-security-348p</guid>
      <description>&lt;p&gt;Blockchain-based solutions have already started conquering the business world. Enabling to solve various issues, they are becoming widely introduced in the work of many companies.&lt;/p&gt;

&lt;p&gt;Though blockchain appeared as a &lt;a href="https://www.news18.com/news/tech/what-is-blockchain-the-technology-behind-bitcoin-explained-1716049.html"&gt;technology behind Bitcoin&lt;/a&gt;, it can serve different purposes, e.g, for fraud prevention, safe data storage, &lt;a href="https://www.cbc.ca/news/technology/bitcoin-blockchain-1.4548864"&gt;digital identity&lt;/a&gt;, and carrying out transactions between autonomous parties.&lt;/p&gt;

&lt;p&gt;Since blockchain is based on cryptography and data in each block is hashed, it has a tremendous potential to solve a wide range of security problems. &lt;/p&gt;

&lt;p&gt;Noteworthy, that blockchain is an immutable and inconvertible data record, which means that all the information, once written in the database, will be stored on it with no possibility to be altered. &lt;/p&gt;

&lt;h3&gt;Blockchain use cases&lt;/h3&gt;
 

&lt;p&gt;&lt;b&gt;1. Traceable secure transactions&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Blockchain is a distributed ledger that provides a digital data record, where no one can change blocks or substitute an intermediate block in the chain. A financial transaction needs confirmations from the sender, receiver, and miner. Once they are made, the transaction is considered to be successful.&lt;/p&gt;

&lt;p&gt;Each piece of information, each transaction, each user login are recorded, saved, and confirmed by all parties involved. Each insider threat is tracked and notified about. When processing financial operations on the ledger, there is a confidence &lt;br&gt;
that the data won’t be stolen or compromised.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;2. Safe data storage&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;One of the key benefits of blockchain is safe data exchange and storage. The main concern in &lt;a href="https://searchsecurity.techtarget.com/definition/cybersecurity"&gt;cybersecurity&lt;/a&gt; is to provide information safety. &lt;/p&gt;

&lt;p&gt;Representing a decentralized ledger and inconvertible data record, blockchain enables control of all communications and other activities that occur in the system.&lt;/p&gt;

&lt;p&gt;Not only cryptocurrencies can be the object of transactions, but any data as well. &lt;br&gt;
In the healthcare, for instance, blockchain can be used for safe exchanges of important medical information between organizations, which allows them to improve document management and reduce drug theft. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;3. Minimization of human errors&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Another “vulnerability” refers to paperwork, which includes human errors when inputting information and preparing documents, loss of important documents, data changes, and data thefts. &lt;/p&gt;

&lt;p&gt;By using blockchain for device verification it's possible to remove the need in logins and passwords. A company can give the device an encrypted identity like an &lt;a href="https://www.globalsign.com/en/ssl-information-center/what-is-an-ssl-certificate/"&gt;SSL certificate&lt;/a&gt;, which is included and then verified on the distributed ledger.&lt;/p&gt;

&lt;p&gt;As the network participants having access always know who is doing what, all insider threats and suspicious activities are tracked and instantly shared on the network. &lt;/p&gt;

&lt;p&gt;&lt;b&gt;4. Securing the Internet of Things&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;In the Internet of Things, blockchain comes with great data protection capabilities. Here the technology can be used for monitoring and recording communications between multiple connected devices.&lt;/p&gt;

&lt;p&gt;By applying blockchain, companies can keep the history of their activities, track suspicious activities, and resolve other IoT security issues. Here you can find out, &lt;a href="https://smartym.pro/blog/iot-security-challenges-securing-iot-with-blockchain-innovative-technology/"&gt;how to protect IoT with the help of blockchain.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;5. Transparent supply chains&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Representing a large complex industry with many sides involved, supply chain management carries various challenges. Companies often suffer from illegal practices and counterfeit of goods.&lt;/p&gt;

&lt;p&gt;When being transported from their production to retail stores, goods have to pass up to 100 and more delivery stages and different parties (manufacturers, suppliers, retailers, etc.). The life cycle is really complicated and requires intelligent control.&lt;/p&gt;

&lt;p&gt;Blockchain can help ensure the full visibility of supply chains by providing each product with a digital ID. It also removes the worry about possible fraud and counterfeit as the data can’t be changed or deleted. &lt;/p&gt;

&lt;p&gt;Moreover, &lt;a href="https://datafloq.com/read/how-can-blockchain-iot-transform-supply-chain/5146"&gt;working together with IoT, blockchain can revolutionize supply chain management.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, find out other &lt;a href="https://smartym.pro/blog/ensuring-security-with-blockchain-technology-top-7-blockchain-applications/"&gt;blockchain use cases in the field of security.&lt;/a&gt; &lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>security</category>
      <category>technology</category>
    </item>
    <item>
      <title>Introducing Bancor Protocol, a standard for designing cryptocurrencies</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Wed, 27 Jun 2018 16:21:26 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/introducing-bancor-protocol-a-standard-for-designing-cryptocurrencies-2i30</link>
      <guid>https://dev.to/dianamaltseva8/introducing-bancor-protocol-a-standard-for-designing-cryptocurrencies-2i30</guid>
      <description>&lt;p&gt;The &lt;a href="https://about.bancor.network/protocol/"&gt;Bancor Protocol&lt;/a&gt; is a standard for designing digital currencies, called smart tokens, with the embedded automatic convertibility directly through smart contracts, serving as decentralized, autonomous, and reliable market makers.&lt;/p&gt;

&lt;p&gt;Representing a standard for ERC20 tokens, Bancor connects currencies in order to create liquidity networks providing instant continuous on-chain token conversions that occur between network users and smart contracts.&lt;/p&gt;

&lt;p&gt;The Bancor open-source protocol uses “connector” modules, which hold balances of other ERC20 tokens within a smart contract. &lt;/p&gt;

&lt;p&gt;Due to constant and automatic price recalculation, the Bancor Formula achieves a balance between smart tokens and their connectors, thus balancing buys and sells.&lt;/p&gt;

&lt;p&gt;A transparent and immutable smart contract logic allows predicting how a token purchase or sale will fluctuate in price. &lt;/p&gt;

&lt;p&gt;As a result, we get more stable token prices with no high pumps and dumps and price manipulations.The &lt;a href="https://blog.bancor.network/"&gt;Bancor Network&lt;/a&gt; significantly differs from traditional and decentralized exchanges. &lt;/p&gt;

&lt;p&gt;Opposed to trading on exchanges that requires matching between two parties, the Bancor Protocol allows automated token conversion without the participation of traders and market makers. The inclusion of a counterparty in the trading process is optional, not required.&lt;/p&gt;

&lt;p&gt;So, users can purchase or sell tokens at any time, even when there is no the second party on the market. &lt;/p&gt;

&lt;p&gt;As the price adjusts to conversion size, there is always some price at which token can be converted. Continuous liquidity is one of the main advantages of smart tokens. &lt;/p&gt;

&lt;p&gt;To take a closer look at the technology, I also recommend reading:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://smartym.pro/blog/blockchain-tech-trends-introduction-to-bancor-protocol-a-solution-to-the-liquidity-problem/"&gt;Blockchain tech trends: Solving a liquidity problem with Bancor&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://storage.googleapis.com/website-bancor/2018/04/01ba8253-bancor_protocol_whitepaper_en.pdf"&gt;Bancor foundation and whitepaper.&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>blockchain</category>
      <category>security</category>
      <category>cryptocurrency</category>
    </item>
    <item>
      <title>5 concepts of Software Distributed Systems. Benefits of Distributed Architectures</title>
      <dc:creator>Diana Maltseva</dc:creator>
      <pubDate>Mon, 21 May 2018 15:16:12 +0000</pubDate>
      <link>https://dev.to/dianamaltseva8/5-concepts-of-software-distributed-systems-benefits-of-distributed-architectures-a1i</link>
      <guid>https://dev.to/dianamaltseva8/5-concepts-of-software-distributed-systems-benefits-of-distributed-architectures-a1i</guid>
      <description>&lt;p&gt;For years, developers have been struggling to find the way to create high-scalable projects. When building complex software, they face a plenty of challenges required to be solved. Otherwise, the app is likely to fail and bring no income.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.uber.com/"&gt;&lt;span&gt;Uber&lt;/span&gt;&lt;/a&gt;&lt;span&gt;-like applications are capable to handle up to thousands of requests per second and can be easily scaled if necessary. What’s more, users can access the main functionality if some system’s parts are down. So, how to develop such high availability solutions where critical functions work even if something fails?&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;The answer lies in the distributed architecture. While centralized systems have low availability, scalability, and consistency, distributed software systems provide their high levels. Certainly, the development of distributed systems is more complicated, but the result is worth it.&lt;/p&gt;

&lt;p&gt;Distributed systems can be demonstrated by the &lt;a href="https://www.techopedia.com/definition/438/clientserver-architecture"&gt;&lt;span&gt;client-server architecture&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, designing the base for multi-tier architectures, which in turn, have functions like presentation, application processing, and data management separated from each other. Alternatives include the &lt;/span&gt;&lt;a href="https://en.wikipedia.org/wiki/Common_Object_Request_Broker_Architecture"&gt;&lt;span&gt;broker architecture&lt;/span&gt;&lt;/a&gt;&lt;span&gt; and &lt;/span&gt;&lt;a href="https://en.wikipedia.org/wiki/Service-oriented_architecture"&gt;&lt;span&gt;Service-Oriented Architecture (SOA).&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Distributed architecture is based on the idea of distributed system concepts such as availability, consistency, durability, idempotency, and persistence. &lt;/p&gt;

&lt;p&gt;When the application complies with these concepts, it can easily withstand high loads, process thousands of requests per second, have all operations correctly made, and all messages successfully delivered.&lt;/p&gt;

&lt;h3&gt;Distributed system concepts&lt;/h3&gt;
 

&lt;p&gt;&lt;b&gt;1. Availability&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;High availability means the percentage of time the service is operational. It is one of the most important characteristics of successful software. &lt;/p&gt;

&lt;p&gt;Though developers dream about achieving 100% availability, it can be very challenging and expensive. Even such large and complex systems as Gmail and the VISA card network don’t provide 100% availability.&lt;/p&gt;

&lt;p&gt;Distributed software systems are often designed on top of machines with a lower level of availability. To develop an application with 99.99% availability you can use machines/nodes that have the four nines availability.&lt;/p&gt;

&lt;p&gt;Also, find out &lt;a href="https://smartym.pro/blog/high-load-architecture-how-to-develop-high-performance-scalable-applications/"&gt;&lt;span&gt;how to develop high-performance scalable applications.&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;2. Consistency&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;In a consistent system, all nodes see and return the same information simultaneously. In order to ensure that all nodes have the same data, they need to exchange messages and work in synchronization.&lt;/p&gt;

&lt;p&gt;However, in speaking of data communications between nodes, some difficulties may arise. For example, messages’ delivery may fail, or messages may get lost, or some nodes may be unavailable at some point.&lt;/p&gt;

&lt;p&gt;Generally, the weaker the required level of consistency, the faster the system can work – but at the same time the higher chances that it won’t return the latest dataset.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;3. Idempotency&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Idempotency means that the actual event execution will occur only one time regardless the number of times a specific request is executed. By providing a high level of idempotency, developers manage to avoid bad consequences of dropped connections, request errors, and more.&lt;/p&gt;

&lt;p&gt;For example, if the customer tries to make a payment but nothing happens, he/she could try again. When the system is idempotent, the payment will be charged only one time, while non-idempotent systems don’t guarantee the lack of double charges and users returning their money back.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;4. Data durability&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Durability is one of the key concerns of distributed systems. It means that once data is added to the data storage, they will be available in the future, even if the some system’s nodes are offline or have their data corrupted.&lt;/p&gt;

&lt;p&gt;Different distributed databases have different levels of data durability. Some databases support data durability at the machine/node level, some of them maintain it at the cluster level, and some don’t offer this functionality out of the box.&lt;/p&gt;

&lt;p&gt;Data durability takes an important role when developing high-scalable applications able to process millions of events per day. &lt;/p&gt;

&lt;p&gt;In many cases, product owners/companies can’t allow data loss, especially when dealing with transactions and other critical operations. That’s why developers need to strongly focus on providing a high level of data durability.&lt;/p&gt;

&lt;p&gt;Nowadays, most distributed data storage services, e.g. Cassandra, &lt;a href="https://www.mongodb.com/"&gt;&lt;span&gt;MongoDB&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, and &lt;/span&gt;&lt;a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html"&gt;&lt;span&gt;Dynamodb&lt;/span&gt;&lt;/a&gt;&lt;span&gt;, offer durability support at different levels and can be all configured to ensure data durability at the cluster level.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;5. Message Persistence&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;When the node which is processing a message goes offline or some other failure happens, there is a risk that a message will be lost. Message persistence implies that the message is saved and will be processed after the issue is solved.&lt;/p&gt;

&lt;p&gt;Message persistence is one of the most important characteristics of a quality application. &lt;/p&gt;

&lt;p&gt;However, to implement the system protected from losses, for example, a messaging app with billions of users or an Uber-like app with millions of payments per day, is quite difficult and requires proven technologies and developers’ expertise.&lt;/p&gt;

&lt;p&gt;The creation of a messaging system that delivers a message at least one time and the implementation of a lossless cluster can become a solution to this challenge.&lt;/p&gt;

&lt;p&gt;In speaking of distributed systems, messaging is generally ensured by some distributed messaging service like &lt;a href="https://smartym.pro/blog/mobile-messaging-app-development-developing-architecture-for-a-chat-application/"&gt;&lt;span&gt;RabbitMQ&lt;/span&gt;&lt;/a&gt;&lt;span&gt; or Kafka, supporting various levels of reliability in delivering messages and allowing to build successful app architectures. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Also, useful Information to check out (at the bottom of the page)&lt;a href="https://smartym.pro/blog/distributed-architecture-5-concepts-of-software-distributed-systems/"&gt;&lt;span&gt; Types of scaling and sharding practice.&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>softwaredev</category>
      <category>appdev</category>
      <category>scaling</category>
    </item>
  </channel>
</rss>
