/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package software; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.net.ssl.SSLProtocolException; import org.jsoup.Jsoup; import org.jsoup.nodes.Attribute; import org.jsoup.nodes.Attributes; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; /** * * @author piotro */ public class test { public static void main(String[] args) throws IOException, GeneralSecurityException { String html = "
\n" + "

November is here, soon we’re going to enter the 2019, which, in my opinion, can bring us some interesting things when it comes to the tech world, mobile specifically. And you don’t need to be Nostradamus, to predict how it’s going to unfold.

First of all, we’ll definitely be saying goodbye to the notch. I don’t think it will be gone due to the solutions like the one Oppo Find X has presented in June (moving mechanical mechanism is too far from being a good idea), but rather what Samsung shown during its private event for 20 top business partners in October.

Second of all, folding screens. It’s easy to doubt that the technology will go mainstream in the following 2-3 years, but who knows what the future holds, right? Samsung has just shown us its newest prototype while Royole’s already planning to start selling their newly-released flexible smartphone(tablet?) - FlexPai.

Besides those above, there are also many more new things to be excited about: in-display fingerprint readers, 5G or an evergrowing number of cameras, but let’s forget about them for a minute. In today's article, I’d like to focus on a few specific trends of 2019.

AI & ML

According to Gartner’s forecast, the global AI-derived business value will reach 1,9 trillion USD in 2019, which is 62% higher than in 2018. More and more businesses enjoy benefits of automated work with the use of artificial intelligence (for example, chatbots and assistants like Google Assistant, Alexa or Siri) or machine learning to analyze and recognize patterns across huge datasets. It’s also extremely useful in mobile applications.

Both Artificial Intelligence and Machine Learning can be used to distribute content according to users’ preferences, predict users’ mood, pick music according to their taste, recognize objects through the camera lens (the trend with AI cameras started in 2018 and will most likely stay with us for some time) and in general to personalize our experience with the software.

If you think AI can help your business (like this), it’s a good time to start implementing it, while the rest are still slacking.

Mobile e-commerce app

It’s expected that in 2019 m-commerce will overtake e-commerce in the number of total global transactions. Which means that even smaller e-commerce stores will have to ensure their presence on the mobile market and develop their mobile applications. Retail is going to shrink even more with its sales getting 6 times smaller than online ones by 2022.

Application development takes time and money, but if you have an e-commerce business, you might want to have a look at React Native, a framework that will allow you to build native Android and iOS applications faster and most likely cheaper.

Internet of Things (IoT)

Growing number of people fall in love with a comfortable convenience of smart houses and interconnection that goes in pair with it. Being able to control every single piece of your home through your smartphone sounded futuristic a few years ago. Look at where we are now.

Giants like Google, Samsung or Amazon keep pushing new products to the market, which means they most likely believe it will grow even more in the future. So do statistics.


Let’s also keep in mind that IoT is not only smart home solutions. It can be and is being used to boost sales in retail, gastronomy, cinema and many other industries.  

Cybersecurity

Deeply rooted in each and every part of our technology-based world, cybersecurity will stay one of the most important issues in 2019. The more devices are getting connected to the internet, the higher the chances that something somewhere will get hacked. With all the data breaches and leaks that we hear about on a regular basis, even with titans like Facebook and Google, it should be one of the top priorities for everyone who’s developing a technological product.

Insecurity of Things (IoT)

I believe we didn’t hit the peak of danger that is hiding within the Internet of Things ocean, but we’ve been shown what it can do. The Mirai botnet is a great example of such a threat. Its authors used millions of IoT devices to carry out massive distributed denial of service (DDoS) attacks around the world with floods of up 1,2 terabytes of data per second. Primarily, thanks to many compromised webcams whose owners aren’t bothered with changing the default admin passwords. The main reason behind that is probably lack of relevant knowledge.  

Mobile Malware Threat

According to Raj Samani, McAfee Fellow, Chief Scientist, the problem is not going to fade away.

“We expect the targeting of mobile devices by cybercriminals to steadily increase in 2018 and beyond as these bad actors hone their exploitation and monetization skills.” - said Raj Samani back at the beginning of 2018.

The number of mobile banking Trojans has increased by 60% in 2017 alone and the cryptocurrency malware by 70%. You can read more about it in the McAfee’s report.

Instant Apps

If you’re not familiar with it, you probably belong to the majority of Android users, not mentioning the iOS ones. Instant App is a solution developed by Google that allows Android users to launch Google Play applications without installing them. You simply find the supported application, click “Try Now” and it opens it as an Instant App.

As you’d expect, it works only when you’re online and loads only a particular part of the application that you’re using at the moment. You can always close it and download the full app.

Even though it might seem not that useful at the first glance, it is what the future can look like. Imagine, you go to the McDonalds website, you want to order delivery, but they offer it only through Uber Eats. If the normal scenario, you’d have to close the website, download the Uber Eats and only then you’d be able to get that tasty McFlurry. But if McDonald's had a URL on their website that links to the Uber Eats Instant App, you’d simply click it, it would load only that particular module of the app that allows you to place an order and voila!

\n" + "

I personally think it has a huge potential that will allow many businesses to interconnect their web/app experience into one, smooth, ecosystem.

Coming Soon

That’s it for the first part of out 2019 trends prediction. Next time we’ll take into our lab a few more interesting topics that will most likely be very important in the upcoming year.

\n" + "
"; Document doc = Jsoup.parse(html); Elements el = doc.getAllElements(); List attToRemove = new ArrayList<>(); for (Element e : el) { Attributes at = e.attributes(); for (Attribute a : at) { if (a.getKey().equals("class") || a.getKey().equals("id")) { attToRemove.add(a.getKey()); } } for (String att : attToRemove) { e.removeAttr(att); } } Elements a = doc.select("a"); for (int i = 0; i < a.size(); i++) { if (a.get(i).attr("href").contains("http") && !a.get(i).attr("href").contains("softwarebrothers.co")) { a.get(i).attr("rel", "nofollow"); } // System.out.println(a.get(i).attr("href")); } Elements src = doc.select("img"); for (int i = 0; i < src.size(); i++) { List l = new ArrayList<>(); { Attributes at = src.get(i).attributes(); for (Attribute b : at) { if (!l.contains(b.getKey())) { l.add(b.getKey()); //System.out.println("Psas"+b.getKey()); } } if (!l.contains("alt")) { src.get(i).attr("alt", ""); // System.out.println("alt"); } }} String t = doc.body().html().replaceAll("", "").trim(); // System.out.println(html); // System.out.println("\npo przeróbce:\n"); System.out.println(t); } }