Pharid https://www.pharid.com IT Startup Tue, 31 Mar 2020 21:28:12 +0000 en-US hourly 1 https://wordpress.org/?v=5.4.1 Dropout at the age of 20 https://www.pharid.com/dropoutstory/ https://www.pharid.com/dropoutstory/#respond Tue, 31 Mar 2020 20:53:05 +0000 https://www.pharid.com/?p=3381 Well, I’m 20 years old. I’ve decided to quit and leave my collage for a few years because I’m unable to focus on my college education. This was my worst decision, but at this time, I don’t have any other options. Today I am going to share my early life. At first I’m Android Developer […]

The post Dropout at the age of 20 appeared first on Pharid.

]]>
Well, I’m 20 years old. I’ve decided to quit and leave my collage for a few years because I’m unable to focus on my college education. This was my worst decision, but at this time, I don’t have any other options.

Today I am going to share my early life.

At first I’m Android Developer and Computer Programming, which means I love writing codes and playing with them as I’ve been doing since the beginning of 2013. Since the beginning of my schooling, I have never given priority to my academic education.

At the early age of my life, I unexpectedly joined a generation that was very creative in the field of IT, developing a lot of cool things on the internet. I spent time browsing their creatures, and I started to follow them. And I decided to join them at the beginning of 2013. The first creature was stccircle.com, which was developed by Mr. Sujan Pokhrel, and the other was Nprulez.com, which was developed by Raazeev Paudel and Dipesh Chapagain, who were Nepalese boys. They developed very good things that the Nepalese had not created.

The ideas speculated in my mind and I decided to learn programming languages as early as 13/14 years of age. I spent my 3 years learning web-based software, and finally I decided to do something new that has a great future, Android “The Future.” Early in 2017, I started to gather knowledge about android development and finally started to learn about it and I become what I am today. From the outset, I never wanted to do my job as an employee, and instead, from the start, I decided to go with a product that was my best decision in my life and that was a very good thing in the nepali IT field.

Today, What a factor forced me to give up?

It’s very difficult to continue my work and my collage in the same direction at the same time. I’ve got a habit of working all night and getting up late, but my collage started at 6 am, which is my sleeping time.

Whenever I go collage, my whole day will be very busy and unmanaged due to the mismanagement of the times. My business activities have to start at 10 am, but I should come back from the collage after 11 am and sleep for a while because I’m working until 5 am in the morning. This means that I don’t have enough time to do my local business, and I’m forcing my dream to be dead. I feel very depressed because of the same activities.

Pharid, Prashant, Sandiph & Siddhant

I’ve been developing entrepreneurship since my early life when I developed my first MSecurity & Antivirus product, which was ABC Mobile Security in 2017. So leaving my work for this kind of education is a suicide for all my work. If I stop all of my business startups at this time and start going to college and study, I have to start from zero after graduation. If I have to start from zero after graduation, why did I spent my very important life on a computer screen? This doesn’t make any sense. If I’m going to have to start from zero. What I did until yesterday was a waste of time.

So I decided to leave the collage and follow my dreams. After a couple of years, I also have times to get a collage degree. The more time I spent at collage, the more I began to hate it, and the more I hated it the worse I did. Finally, I just stopped trying. My grades started to drop. I eventually realized that the things in life are more important than the collage.

Despite the fact that I’m going to drop out, I’m extremely passionate about education.

To answer the common questions,

Do I think everyone should drop out of here? No, absolutely not.

Do I think everyone’s supposed to skip college? No, but I’d recommend taking a year off between high school and college to try whatever field you’re going to spend tens of thousands of dollars to get a degree.

Do I think that education is important? It’s absolutely. Education is extremely important, but education and school are not the same thing.

WHOLE WORLD IS A SCHOOL FOR THOSE WHO WISH TO LEARN.

The post Dropout at the age of 20 appeared first on Pharid.

]]>
https://www.pharid.com/dropoutstory/feed/ 0
How to Create Android App In Android Studio ? https://www.pharid.com/how-to-create-android-app-in-android-studio/ https://www.pharid.com/how-to-create-android-app-in-android-studio/#respond Thu, 19 Mar 2020 15:20:50 +0000 https://www.pharid.com/?p=3371 This guide will explore how to set up Android Studio, as well as how to create a basic web browser from scratch that can load, refresh, and use a basic bookmark menu. This guide will teach you the fundamentals of building Android apps and is a great starting point before you get your hands dirty […]

The post How to Create Android App In Android Studio ? appeared first on Pharid.

]]>

This guide will explore how to set up Android Studio, as well as how to create a basic web browser from scratch that can load, refresh, and use a basic bookmark menu. This guide will teach you the fundamentals of building Android apps and is a great starting point before you get your hands dirty with more advanced Android app templates available on pharid.com.

Installing Android Studio

First thing, downloading Android Studio is a simple matter. Using the following link: [https:/developer.android.com/studio] Select “download Android Studio” Then choose the location to be installed to ensure that it has a good amount of space, because every application that is created within it, as well as the Android device emulators that will be explained towards the end of the guide, will be stored there.

When Android Studio is enabled and opened, you will see a welcome message that encourages you to start a new project. Go ahead and accept that offer, and then choose to create an empty activity, and then populate with a title and location. Make sure you select Java when prompted to select Language and we will use API 15: Android 4.0.3 (IceCreamSandwich) for our minimum API level as shown in the images. Then choose Finish.


Developing the WebView Application

Now that Android Studio is up and running, you should find yourself on the landing page full of menus, tiny icons andother intimidating features. Don’t worry, we’re going to get through this. Remember that even when the landing page is open, Android Studio may still be building some of the required files that might change the layout of the sidebar view, so avoid having items jump around while you’re trying to work with them, just give the app few minutes before moving to the next step.

Step 1 – Layout

The first thing that needs to be done is to get the layout of the application to be correct, so navigate to the ‘activity_main.xml’. It should be along the top bar by default, however if it is not it can be found by navigating via the sidebar from “app > res > layout > activity_main.xml” as demonstrated by the image on the right.

What I want you to notice on this page is the xml file layout. The Gold Text defines the Constraint Layout that contains the entire application. After the initial settings for the Constraint Layout are defined, there is a TextView inside which has a whole series of its own settings, including’ android: text=’Hello World!which is what controls what text is displayed on the current application page. Although TextViews are very useful tools, what we need to do at this stage is to erase everything that relates to a text view. It’s lines 9-16 on the example image. So that the text here looks like an image.

In the space left behind by the TextView we are going to create two nested Linear Layouts. A Linear Layout is a container which organizes its contents either horizontally or vertically one next to the other in a linear fashion. In order to create one, click on line 9 like in the image. Then press tab one time to create an indent and type “<LinearLayout” Android Studio will try to autocomplete the section for you. Once you type “<LinearLayout” just press enter and the section will be created for you. It will populate your layout with two settings, “layout_width” and “layout_height”. For both of these type in “match_parent”. After the “layout_height” setting there should be the following text “></LinearLayout>”. This indicates the end of the element you just created. So place your cursor between the “>” and “<” and press enter to expand out the layout so that it can contain element within it. Within this section press tab one more time for an additional level of indentation and create another Linear Layout exactly like before except with “layout_height” set to “40dp”. After you finish your page should resemble the following image.

Once your Linear Layouts are set up we need to add a couple of settings to each of them. Starting with the first one you created, among the other android settings we need to see ‘android:orientation=”vertical”’. 

This controls the way the items inside of the Linear Layout are arranged. After that line, insert ‘android:id=”@+id/outsideLinearLayout”’ which will give the entire container the id of “outsideLinearLayout” for us to find from the Java code later on. The same will need to be done to the second layout with a couple differences. Firstly the orientation will need to be set to ‘horizontal’ instead of ‘vertical’ and the id will be ‘topLinearLayout’. [PS: Feel free to set the IDs to whatever you want, however if you follow what I am using it will be a bit easier to make sure your Java code is set up properly in the following step]

Now that’s it, your Linear Layouts are completely done, we will not be touching those again. Congratulations, but now comes the more interesting part. We are going to add another 3 elements to the xml file.

Image View: Contained within the second linear layout type “<ImageView” and press enter. Android Studio will automatically complete it like it did for the layout elements. For the layout_height and layout_width we once again want “match_parent” for both fields. Right under those settings we will be adding 3 more lines: ‘android:layout_weight=”0.9”’, ‘android:id=”@+id/iconView”’, ‘android:src=”@mipmap/ic_launcher”. The weight value will decide the importance of the image view. We want it to always be present and take as much space as it needs. This will be our icon preview of each page that the webview visits. The src value controls the default image that will be displayed in the image view, we are using a common image library and getting a simple android icon which will be replaced by any web page we visit.

Progress Bar: Right below the Image View we will type “<ProgressBar” and press enter. Again the sizes will both be set to “match_parent” and much like the image view we will add a few values to the settings: ‘android:layout_weight=”0.1”’, ‘android:id=”topProgressBar”’, ‘style=”@style/Widget.AppCompat.ProgessBar.Horizontal”’. The style one I’m sure looks a bit odd, but it is similar to getting the ‘src’ of the Image View. It looks through common Progress Bar styles and finds the horizontal styling that causes the bar to increase across the page as web pages are loading.

Web View: We made it, the reason you’re here. Below the second Linear Layout entirely (but still within the first) type “<WebView” and press enter. This one is actually fairly simple to set up on this page. 

For height and width put “match_parent” and then create an id field like this: ‘android:id=”@+id/mainWebView”’ and believe it or not that is all we will have to do on this page.

I understand that those might have seemed like a lot but for reference your activity_main page should now look like the following image.

Step 2 – Java:

For now we are done with the layout elements. It is time to move from the ‘activity_main.xml’ file to the ‘MainActivity.java’ file. As seen in some of the previous images that should appear by default on the top bar next to the ‘activity_main’ file. If it does not, then the file can be found by navigating through the sidebar by going “app > java > com.example.beginnerwebview > MainActivity.java”. Keep in mind that ‘com.example.beginnerwebview’ is the name of the package that we set up at the beginning of the tutorial and this may be a different name for you.

In the MainActivity file we first need to establish a connection to the Layout elements we created in the xml file. In order to do that find the line that says ‘public class MainActivity extends AppCompatActivity’ and after this line create a section where we will establish the variables that will point to the elements in activity_main. Between the mentioned line and the first ‘@Override’ add the following:
LinearLayout outsideLinearLayout, topLinearLayout;

ImageView iconView;

ProgressBar progressBar;

WebView mainWebView;

As you create each of these lines you should receive a prompt to import the associated libraries, just press enter to accept but if that is not offered the import statements will be highlighted in yellow in the left image.

To finish making pointers to our activity_main elements we will need to work within the ‘onCreate’ method. After the line ‘setContentView(R.layout.activity_main);’ add the following to finish pointed (highlighted in orange in the image):

outsideLinearLayout = findViewById(R.id.outsideLinearLayout);

topLinearLayout = findViewById(R.id.topLinearLayout);

iconView = findViewById(R.id.iconView);

progressBar = findViewById(R.id.topProgressBar);

mainWebView = findViewById(R.id.mainWebView);

Keep in mind that the values that follow ‘R.id.’ are the names that we gave to the layout elements back in activity_main.

That being done, we need to set up some initial settings for our web view for it to work properly. So still within the onCreate method but below the other lines we added we will add a few lines of code to get things initialized properly:

progressBar.setMax(100);

mainWebView.loadUrl(https://www.google.com/);

mainWebView.getSettings().setJavaScriptEnabled(true);

mainWebView.setWebViewClient(new WebViewClient());

mainWebView.setWebChromeClient(new WebChromeClient());

Feel free to set the .loadUrl value to whatever starting webpage you want, I am going with google.com for simplicity’s sake.

To finish this current batch of Java coding we need to edit the new WebChromeClient that you created to feed the required information to our Layout elements. So go back to the line reading ‘mainWebView.setWebChromeClient(new WebChromeClient());’ and right at the end between the final two parentheses (so between ‘()’ and ‘);’) create an open and closed curly bracket (‘{}’) and press enter to go to a new line between them. In this newly created section press ‘Ctrl+O’. This will open a new window called ‘Select Methods to Override/Implement’ we are going to select three of them:

‘onProgressChanged’

‘onReceivedTitle’

‘onReceivedIcon’

It does not matter in what order you select those three, but choose them all by Ctrl+clicking them and press ‘OK’. Now that those are created we are going to go through them one at a time and add in the required lines. Starting with ‘onProgressChanged’, inside of the method, just after the line that reads ‘super.onProgressChanged(view, newProgress);’ create a new line with the following text, ‘progressBar.setProgress(newProgress);’ This method will be called every time a page is loading and will dynamically update the level displayed by our progress bar. Now in ‘onReceivedIcon’ again as a new line at the bottom add the following, ‘iconView.setImageBitmap(icon);’. With this line in place every time the chrome client gets a new webpage it will provide the associated icon of that page to our iconView element. Finally under ‘onReceivedTitle’ in the same relative position as the other two add the line ‘getSupportActionBar().setTitle(title);’ This will change the title of our webviewer to the title of the current webpage as it loads.

And that is it for now. We will return to the java code, but for now give yourself a well deserved pat on the back, we have one more very small step and then we will have our first running demo.

Step 3 – Permissions and Demo

We need to find a new file on our sidebar again. Start by going to “app > manifests > AndroidManifest.xml”. This file controls the permissions that our application will be provided with while it runs. We are going to add a mere three lines to this page and then you can forget you ever saw it because that will be it. Find the ‘>’ on the third line of this page and place your cursor after it. Press enter to create a new open section between that line and the line that begins with ‘<application’. In this area we are going to enter the following:

<uses-permission android:name=”android.permission.INTERNET”/>

<uses-permission android:name=”android.permission.READ_EXTERNAL_STORAGE”/>

<uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>

With those in place we now have all of the permissions we will need for the rest of this program completed.

Now to see a demo of the application, click on the green play button in the upper right-hand corner of the window. This will open a new window titled ‘Select Deployment Target’. Your selection will likely be empty but we are going to fix that. Near the bottom of this new window click on the button titled ‘Create New Virtual Device’ which will open yet another new window (last one for sure) titled ‘Virtual Device Configuration’. Make sure that the category section on the left is set to ‘Phone’ and scroll to whatever android device you wish to emulate. I will be using a Pixel, but they should all work. Once you have it selected, click on Next.

On the new page you are provided, you will be prompted to select a System Image. The specifics are not too important, but you will chose between a few different releases, I will proceed with Q because it is the most up to date at the time of writing. So make sure that you press ‘Download’ next to the name of the Release and wait for that to finish, then highlight the release and click on Next once more.

On the following page you will have the option to change the name of this Android Virtual Device (AVD), if you wish to. However this is not required. Simply click on Finish in the lower right-hand corner to proceed.

Now, back on the Select Deployment Target screen you should see the new virtual device available. Select it and click on OK. Give it some time to deploy as running an emulator of an entire new device can be rather processor intensive, and it will then have to install the new application you just made. After a couple minutes however you should see the phone screen with your new WebView application up and running showing either google.com or whatever web page you included as your landing page with the title of the page in the upper bar and to the left and the icon and progress bar located directly underneath. Congratulations. Because now we move on to the fun stuff.

Step 4 – Additional Functionality

So your WebView works. Great, but it is a little boring no? In this step we are going to add some functionality to what is already there. Starting with setting the progress bar to only display when the page is actually loading, after all we do not need to know that the page is at 100% all the time. Then we will enable refreshing the page when the user of the phone swipes up when the page is already scrolled to the top. Additionally if you were to press the back button at the moment the webview application would simply close, so we are going to add some functionality which will allow the application to go back to the previous page visited when back is pressed and only close the application once the user is back where they started and presses back again. Finally we may want to download something over the new browser at some point, or at least have the ability to, so we will set up a simple download manager.

Progress Bar Visibility

It is time to go back to the Java code. Remember how we expanded the new WebChromeClient by adding open and closed curly brackets? Because that’s what we are doing again for the WebViewClient one line above. Add in the open and closed brackets between the final two parentheses and expand. 

When you are in the new section that you made, press Ctrl-O again to open up the Select Methods to Override/Implement page. The two functions we are looking for are onPageStarted and onPageFinished. Select both and press ‘OK’. Of those two new functions, ‘onPageStarted’ is run whenever the page you are going to is currently loading and ‘onPageFinished’ is run when the loading has concluded. So starting with onPageStarted, put the following line: ‘topLinearLayout.setVisibility(view.VISIBLE);’

This will make the entire top bar of the page visible when the page is first fetched. Under onPageFinished put the exact same line except instead of view.VISIBLE put ‘view.INVISIBLE’ which will hide the top bar when the page has finished loading. What we will end up with is a rather cool visual effect where the bar drops down from the top of the page when a page is first requested, fills the loading bar as the page is loading and then neatly hides itself away after the page has finished loading.

SwipeRefresh

One feature you see very commonly on mobile browsers is the ability to scroll up even when the browser is at the top of the page in order to cause the page to refresh. It makes sense for us to implement that feature in our little application so let us go over how to do that. Starting with the activity_main.xml, this is where you created the general layout of the page. On the very top line we will be replacing the text that defines the Constrained Layout (that’s: ‘<androidx.constrainedlayout.widget.ConstrainedLayout’) with ‘<androidx.swiperefreshlayout.widget.SwipeRefreshLayout’. Note that it is important to only replace the text specified and no more. At the very bottom of the page now there should be a closing tag for the constrained layout ‘</androidx.constrainedlayout.widget.ConstrainedLayout>’ replace that as well with: ‘</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>’ to close the layout properly. Now to finish up with the .xml page, right under the open tag, we need to create an ID for the SwipeRefreshLayout. I will go with ‘android:id=”@+id/swipeRefreshLayout”’.

Unfortunately that does not quite take care of everything we need to do however we are done with ‘activity_main.xml’ for another good while. For now head on back to MainActivity.java. On this page we will be making a new variable pointer just like we did before for our layout elements only this one will be for a SwipeRefreshLayout. So near the very top of the page create a SwipeRefreshLayout variable (mine is named ‘swipeRefreshLayout’ because I’m uncreative). Then in the onCreate method point to the layout element using ‘findViewById’ just like we did for the other elements. The last thing we need to do to get the swipe refreshing working is to add a line in the java code ‘swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {});’ 

This should seem familiar from when we did the web view features. Anyway just like then put a couple new lines between the ‘{}’ and press Ctrl-O, on the Methods to Override/Implement screen we are looking for the method ‘onRefresh();’. In the onRefresh method that is created add the following line: ‘mainWebView.reload();’ and with that completed the screen should refresh when scrolling above the top of the webpage.

However, if you give it a try you will notice that once the page starts refreshing, the spinning wheel never goes away. Bit of an oversight of the function in my opinion, but we can fix it. You need to find the new WebViewClient we built before and go to the onPageFinished method. Go just beneath the ‘topLinearLayout.setVisibility’ method and enter the following line: ‘swipeRefreshLayout.setRefreshing(false);’. This will allow the spinning wheel to disappear after the page has been refreshed.

Back to go Back

As mentioned above, at the moment if you were to fire up the application and press the ‘back’ button on the phone what would happen is that the application would completely close. This is not ideal as we would like to be able to use that to go to the previous page visited. Let us fix that.

Stay within the Java code and scroll down. Everything we have done so far has involved going into the onCreate method. This time however we will be going below that method (though still within the MainActivity). At the bottom of the java page there should be two ‘}’, the first one tabbed in once and the second against the left side of the window. After the first one, so between the two, create a new line and press Ctrl-O. The method we are looking for here is called ‘onBackPressed’ and is under the ‘androidx.fragment.app.FragmentActivity’ category. When you find it press ‘OK’. This method will be called every time the user presses the back button while the app is open. Currently the only line it contains is ‘super.onBackPressed();’ which basically says to just use the default functionality of the back button. We will be keeping that line but binding it in an ‘if..else..’ statement. So before that line type the following ‘if(mainWebView.canGoBack()) {‘ and press enter. Inside of the curly brackets enter ‘mainWebView.goBack();’. This tells the code that each time the back button is pressed, before closing the app first check if the web browser has pages in its history. If so, go back one page. In order to stop the app from closing when it recognizes that, go to the ‘}’ after the if statement and type ‘else {‘ and press enter. Put ‘super.onBackPressed();’ in this method. That will stop the code from executing the default functionality unless you are back to the first page of the browser.

Download Manager

Assuming that you may actually want to use the web browser to, you know, browse the web, then occasionally you are going to have to download something. Here we will quickly go over how to allow the webview application to handle a download request.

On the Java code go to near the bottom of the onCreate method where we created the new WebChromeClient. After that add a new line ‘mainWebView.setDownloadListener(new DownloadListener() {});’. We have been doing this for a while now, you know what is about to happen. After typing that line it should automatically open the curly brackets and add an override function called ‘onDownloadStart’ but if it does not, then open up the brackets yourself and press Ctrl+O and find the function in the window. Inside of the brackets for ‘onDownloadStart’ add the following line, ‘DownloadManager.Request currRequest = new DownloadManager.Request(Uri.parse(s));’. It is possible that ‘DownloadManager’ and ‘Uri’ will both show as red, this only means that the functions have not been imported. Click on them and press Alt+Enter to automatically import the required libraries. This will create an object we can manipulate containing the download request submitted by the web page. For our next line type in ‘currRequest.allowScanningByMediaScanner();’. This line is optional but ensures that when downloading media files like audio and video, the files will be listed in the native media player. Now that we have the download request and the ability to tell if it’s a media file, we need ‘currRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);’. Which will inform the download manager that we are to be notified when the download has finished. Now we have a request will all of the required settings done, we just need something to manage the request and get the actual file downloaded.

So, maybe leaving a bit of blank space to indicate that we are onto a new section, then put in the line ‘DownloadManager currDownload = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);’. This will be our manager and be responsible for ensuring the file gets where it is going. So finally put in ‘currDownload.enqueue(currRequest);’. This is to pass our request to our manager which will start the download of the requested file.

Step 5 – Menu and Bookmarks

Now that we have ourselves a fairly well featured web browser, don’t you think that that top bar looks a little bare with only the web page title on it? Thought so. So for this step we will add a few icons to the menu bar as well as a short bookmark list. Go to the left column and find the following directory: app > res. Right click on the res folder and go to New > Android Resource Directory. This will open a window for the properties of the new folder. Change the default name to ‘menu’ as well as the type of the directory to a menu type in the dropdown underneath the naming bar. Now right click on this new directory you made and go to: New > Menu resource file. In this file the only parameter that needs setting is the name field. I will be using the name ‘browser_menu’ but feel free to use whatever you want and change the name in my code where appropriate.

You will likely recognize this file type as a layout file similar to the activity_main.xml we have been editing thus far. It will however only be used to edit the layout of the menu bar.

 

Before we continue with that however, open the ‘drawable’ directory in the same ‘res’ folder. Currently there should be two versions of the launcher icon we use for our Progress bar. We are going to want some buttons to press on our menu bar so we will be importing the requisite images here. So right click on the drawable folder and go to ‘New > Vector Asset’. This will open a new window specifically meant for selecting icons. On the left side of this new window there should be a section titled ‘Clip Art:’ and next to that title will be a small box with the current icon in it. Click on that box and after a second a new window will open up with a whole collection of icons available. We are going to grab a few from this window, starting with ‘arrow back’. There is a search bar in the upper left hand corner which can help with finding any of the icons I name. After you find the required icon click on ‘Next’ and then ‘Finish’ in the following page. Now go back and do it again for the following icons: ‘arrow forward’, ‘menu’, ‘refresh’.

Now that all of your icons are imported, click on ‘ic_arrow_back_black_24dp’ in the drawable folder to open up the .xml file to manipulate it. What you want to find should be on line 7, called ‘fillColor:’. Find the section in quotes that reads “#FF000000”. Change it to “#FFFFFFFF”. This is a hex code, we are changing the icon color from black to white which will make it much easier to see on the dark blue background. Now go through and do the same for all of the icons we just imported.

All right, as promised now go back to the browser_menu.xml file we created at the beginning of this section. We are going to be adding a bit of code to that now. Starting with the top line that contains the <menu declaration. Follow that line to the end and after ‘android”’ but before the ‘>’ insert a new line. The code to be entered here is ‘xmlns:app=”http://schemas.android.com/apk/res-auto”’. After that we can actually enter the menu and we will be inserting an ‘item’ element for each entry to our menu bar. Starting with the back button enter the following:

‘<item android:title=”Back”

android:id=”@+id/menuBack”

app:showAsAction=”always”

android:icon=”@drawable/ic_arrow_back_black_24dp”/>’

So let us go through what these items are. The ‘title’ is how the item will actually be saved in the menu bar, the id is something we have used before and will be used by us in the Java code to link to the button, showAsAction controls how often the button is in the menu and how often it is on the menu bar without needing to open the menu to see it, by setting it to “always” we are saying we always want it on the bar and not in the menu itself. Finally the icon element points to the icon we imported just previously which should currently be showing on your menu bar if you launch your application.

Now, following this same format, do the same for the ‘Forward’ button and the ‘Refresh button. The changes are ‘title=”Forward”’, id=”@+id/menuForward”, and icon pointing to the name of the icons we imported previously for this purpose.

We will come back to this file briefly but for now go back to ‘MainActivity.java’. Find the area where we made the onBackPressed override method. Go after it and press Ctrl-O again. The methods we are looking for are titled ‘onCreateOptionsMenu’ and ‘onOptionsItemSelected’. Choose both of these and create the override methods. Go to ‘onCreateOptionsMenu’, in here we are going to be creating our own menu inflater. A menu inflater is an object that fills the options menu with the items available. So before the ‘return’ function add the following line: ‘MenuInflater menuInflater = getMenuInflater();’. And a variable is useless if you do not do anything with it, so then put : ‘menuInflater.inflate(R.menu.browser_menu, menu);’ This will tell the menu inflater to supply the option menu with our own custom made menu we just finished the layout for.

That will finish off that method. Now move down to the onOptionsItemsSelected method that we created right after it. In this method we will be receiving the menu item that was clicked on and telling the code what to do in response. We will start by creating a switch statement based on the MenuItem that is passed by default to the onOptionsItemSelected function. So between the ‘{‘ and the ‘return’ statement add the following ‘switch(item.getItemId()){‘ and press enter. This will allow us to switch between different methods depending on which item is selected. So start by entering a case item for each button we added to our menu so far. They can be added as follows:

 case R.id.menuRefresh:

break;

case R.id.menuBack:

break;

case R.id.menuForward:

break;

Currently how the switch statement works is that when a menu item is selected the onOptionsItemSelected function is run with a parameter set to the button that was pressed. The switch statement then checks the ID of that button and checks to see if it has any cases set to that ID. Currently all the cases say to do is to break out of the switch statement but we will add some functionality here.

Starting with menuRefresh. If the user selects that button we want the page to reload the same as if the user scrolled up from the top of the page. Which as we experienced before is really just one simple line of code. So between the ‘menuRefresh:’ and the ‘break;’ add the line ‘mainWebView.reload();’

For the menuBack you might be tempted to do a similar chunk of code as we did for when the back button is pressed on the android device. And if you did it would work. However we do not need to spend that much effort. Between the ‘menuBack:’ and the ‘break;’ put the line ‘onBackPressed();’ to simply call the function above which can handle moving back through the pages all on its own.

Finally for the menuForward section. We will be adding some code in the same place. However because we do not already have a function built to handle going forward we will have to write a quick test to make sure there are no errors thrown. So in the same place add:

if(mainWebView.canGoForward())

mainWebView.goForward();

The ‘if’ statement will make sure we do not crash the app and only move forward if there is a forward element in the page settings.

At this point feel free to give it a try, all of the buttons we added to the menu bar should be working just fine.

Part 2:

Now we will add a small bookmarks menu with a few basic pages that any user of our webview might want to go to quickly. So to start on this we need to go back to ‘browser_menu.xml’. And back in this layout page we are going to add another 3 items (but feel free to add as many as you want) which correlate to different web pages. So just like we did before we will add these items in the format:

<item android:title=”XXX”

app:showAsAction=”xxx”

android:id=”@+id/XXX”/>

For these bookmarks options we want ‘app:showAsAction’ to equal “never” this is because the button will always be going in the bookmarks menu and is not to be displayed on the menu bar itself.

For my three webpages I am going to use “Youtube”, “Google”, and “Facebook” but feel free to point to whatever pages you want. To get there I am going to use the names of the pages as the titles (android:title=”Youtube”) and the name plus ‘button’ for the ids (android:id=”@+id/youtubeButton”).

Now to get these buttons to work we will have to head back to the Java code and enter some cases for them inside of our earlier switch statement. So going back to that code inside of ‘onOptionsItemSelected()’ we will add a number of items to that switch statement equal to the number of pages that we wanted to add to the bookmarks bar. In this format:

case R.id.XXXbutton:

mainWebView.loadUrl(“https://>url here</”);

break;

With my versions demonstrated in the left image.

There is one final thing before we can call the bookmark bar done. If you were to open the android emulator now you would see three vertical buttons on the right side that when pressed open out bookmark menu. This works however I think it could look a little better. Also I had you create a menu icon way back at the beginning of this section so it would be a shame not to use it. Adding an icon for the menu button is not quite as easy as for the other buttons we put on the top bar because it exists already within the default layout for an android application. It can be done however. Start by going to ‘app > res > values > styles.xml’. This file contains information about the theme of the application and the top and bottom should be ‘<resource>’ tags with ‘style’ tags just inside of it. We are going to be adding an item to within the ‘style’ tags to start off. It will read

‘<item name=”android:actionOverflowButtonStyle”>@style/myActionButtonOverflow</item>’

Now that that is added with the other items, after the ‘</style> flag insert a new line. We are going to create our own style section. So type in:

<style name=”myActionButtonOverflow” parent=”android:style/Widget.Holo.Light.ActionButton.Overflow”>

</style>

This style element will now contain all of the display elements of the menu button. So, just within this new style section we will be adding two line to make the button look just like we want. The first should be similar to adding the icons to the top bar items:

<item name=”android:src”>@drawable/ic_menu_black_24dp</item>

<item name=”android:background”>?android:attr/actionBarItemBackground</item>

The first line there sets the icon to be the menu icon we set up at the beginning of this section. And the second line sets the background of the top bar to its default value. It is this line you will have to change if you want the top bar to be distinctly different. Finally the picture below shows what I ended up with after this whole process.

With that done our WebView application should be good to go. Fire up the emulator and give it a look.

All four of our menu buttons should be set up with white on the dark green background. The pages should load just fine with the progress bar only visible while the page is actively loading. Finally the bookmarks button should open a small menu with the names of a few websites that when clicked on send the user to the site.

I hope you had fun learning a bit about Android Studio and WebView applications in particular, and see it is not so scary!

 

The post How to Create Android App In Android Studio ? appeared first on Pharid.

]]>
https://www.pharid.com/how-to-create-android-app-in-android-studio/feed/ 0
The Hackathon of “Erroneous & Bias” https://www.pharid.com/the-hackathon-of-erroneous-bias/ https://www.pharid.com/the-hackathon-of-erroneous-bias/#comments Wed, 05 Feb 2020 05:51:02 +0000 https://www.pharid.com/?p=3153 As the very name suggests in the hackathon, we were trying to use technology to hack into a real world problem and solve it better. It’s been a 24-hour production environment where every team needs to develop a product from scratch during those pretty hours. The size of the team varies from 2/3/4 depending on […]

The post The Hackathon of “Erroneous & Bias” appeared first on Pharid.

]]>

As the very name suggests in the hackathon, we were trying to use technology to hack into a real world problem and solve it better. It’s been a 24-hour production environment where every team needs to develop a product from scratch during those pretty hours. The size of the team varies from 2/3/4 depending on the organization that organized it. I would like to share my first Hackathon experience coordinated by the Nepathaya Collage.

Our team consisted of me and my two mates from the “Lumbini City” Collage. Being a first year student was a perfect opportunity to learn and meet new people. The name of our squad was \”Pharid Dot Com.\” We left our home at 12:00 a.m. and reached college around 1:00 p.m. The Hackathon was due to start at 2PM. Since meeting in the auditorium with tens of other developers, we began to address development issues because, as we understood it, the competition was about product development from scratch rather than presenting business ideas in the slides.

We were very excited, my team: Siddhant and Roshan were the coolest man with a happy and excited face. They don’t know how to write a code, but they were on my side to fully support me. Precisely 2PM, the hackathon started and I started running Android Studio to start developing the Android app for “VISIT NEPAL 2020.” Visit Nepal 2020 was the focus of the Hackathon competition, and we were very excited to work on it because it was in our favours. I started designing things in a small piece of paper. It wasn’t new for me to work without a team of developers. Before this competition, I had created 30 + apps. And my team was totally dependent on me.

It was 12AM, I finished the UI Development and started working on the backend(JAVA) to offer the features, and my mates were watching as I wrote the codes. Because it was the first time they saw the concept of java coding. After working continuously for 20 hours, our product was ready. And my team was very happy looking at the APP interface and the features that we give to foreign tourists. We have introduced Login Framework, Showcase Pages, Homepage, Live Weather(Api based), Top Town, Top Locations, Close Events, Currency Converter(Api based), Hotel Booking(Api based), Flight Booking(Api based), Emergency Helpline(API based). It means we’ve got everything that one app can offer to tourists. Precisely Monday’s 2PM, the hackathon ended and the demonstration program started with many cheif guests and CAN officials.

As planned, the top 3 winner was supposed to be chosen by the jodges but they immediately changed the rule and said they would choose the top 5 teams that we were very dissatisfied with because Hackathon was an international competition and that was unacceptable. I don’t know what they were referring to each other during the talk session, because the whole team was waiting for the top 5 results. After 2 hours, about 4:40PM, the top 5 team was revealed and we were fortunate enough to be picked up.

Left = Siddhant Khanal, Center = Pharid Ali and Right = Roshan Khausiya

Now I am going to the agenda of this blog:

What the hell was Hackathon all about? And what was the Nepathaya Sponsored Hackathon?

In the first place, 15 teams participated in the competition. As we have analyzed, literally, our mentors too, only 2/3 teams have successfully produced a full-feature product. How can the judges be able to select 5 teams? Does it make any sense to pick 5 teams from 2/3 teams? As per Hackathon Declaration, “It is an event, typically lasting several days, in which a large number of people meet to engage in collaborative computer programming.” Team “FSociety,” “Pharid Dot Com” and “Reckle” were three teams with a practically usable product. Yet “Reckle” was tossed out by the judges without calling them to top 5.

Many teams were a web-based project with copied boostrap, css and HTML codes without a backend. Should we say the “Full Project” HTML templates? Do you think they’ve been able to fight in the top three without a backend? We totally understood what had actually happened to select five teams behind the scenes. I’m not a judges, but we can understand in a very simple word, “It was totally biased!” Wait, I’ve got to share some more interesting stuff. After the Top 5 has been picked, now it’s the Top 3 team turn. They asked us to visit CAN’s sponsored MELA after 10 a.m. at Bahumukhi Collage to show the project again in front of non-IT Field people who really don’t know about the hackathon.

This was totally as expected. The “FSociety” team was really good, and they built up what the competition was all about. Mentors already knew who was going to be first and second, because the idea of the project was circulated among everyone. They said, “When FSociety gets the first, Pharid be the second, and if Pharid get the first, FSociety will be the second.” We went to them to present the project again. We were at number 4 to display the launch. And now the guys came up with slides to display their HTML templates. And “FSociety” was 3rd, and we were 4th to show up. The FSociety showed up their full live presentation, and We did the same thing.

We’ve shown the entire live setup from the Login Page to the Online Flight Booking system. Everything became clear in my mind. Either we’re going to be first or we’re going to be out because two teams weren’t part of the real competition. The competition was very simple, but my mates told me, “Pharid, we’re going to be second, because Fsociety is showing everything very clearly than us.” The result was about to be published, but I wasn’t pleased because I already knew what the bias would be.

The result: 1. FSociety – Real Competitor, 2nd and 3rd – I don’t know their name because they were not our competitor. My Request to the Organizer and Associate Sponsors: Is our full functional app really defeated by HTML and Slides? Do you think that the real meaning of Hackthon was HTML and Slides? If the competition was about HTML and Slides, why did you call it Hackathon? Because you killed the emotion of Hackathon’s common word and context.

You guys have ruined what the programmer feels about their product. I’m ashamed of you. I’m embarrassed of you. Creating HTML and Slides can be achieved with 9/10 grades of fresh minds. You guys need to respond to my blog if you have a sense of responsibility.

I’d say to the CAN, “You’re dishonest like the government. Your decision was entirely based on bias theory, and you’re pissed off. You can avoid interfering with the International Level Competition. You’re not able to judge these kinds of programs.

Clear Message to the CSIT Association of Nepal,”You’ve failed, and you’ve created a group of looser, you’ve failed to stop the injustice. You’re always going to be looser in my history. Yeah, LOOSER. You shouldn’t organize such program without proper knowledge because you’re not capable of managing it. Your maturity isn’t going to tell you your abilities, but such a program makes you completely naked.

If you think I wrote this blog because I lost it? Please don’t think that: I have my own world of programming and IT technology. You shouldn’t need to teach me how to do the things. and I don’t need any prizes to prove myself to the world. I’ve already created what I need.

The honest thing is that, The CAN and Sponsor ‘Nepathaya Collage‘ and so called group of IT young minds ‘CSIT Association of Nepal‘ should take full responsibility of what had happened to the so called “hackathon

The post The Hackathon of “Erroneous & Bias” appeared first on Pharid.

]]>
https://www.pharid.com/the-hackathon-of-erroneous-bias/feed/ 2
7 Strategies to guarantee the results of App Monetization in 2019 ! https://www.pharid.com/7-strategies-to-guarantee-the-results-of-app-monetization-in-2019/ https://www.pharid.com/7-strategies-to-guarantee-the-results-of-app-monetization-in-2019/#respond Sat, 13 Jul 2019 18:12:24 +0000 https://www.pharid.com/?p=3195 We’re going to discuss everything about app monetization in this blog post and let you know how to maximize app revenue. Deciding to create an app is definitely not an simple task, as it needs a intelligent concept, adequate planning, market research, etc. More importantly, the development of apps is a heavy investment. This forces […]

The post 7 Strategies to guarantee the results of App Monetization in 2019 ! appeared first on Pharid.

]]>
We’re going to discuss everything about app monetization in this blog post and let you know how to maximize app revenue.

Deciding to create an app is definitely not an simple task, as it needs a intelligent concept, adequate planning, market research, etc. More importantly, the development of apps is a heavy investment. This forces companies or an individual to believe twice before finalizing their choice.

Of course, everyone understands that an app has become a company requirement for a variety of reasons including direct interaction with target audience, sending advertising notifications, increasing sales of products and services, etc. In other words, app plays a crucial role in helping company develop adequately. Is there any way to directly gain cash from the app, apart from company development?

Of course, yes! App monetization is now in trends, and most app owners use the best technique to gain heavy amounts. And so they get better returns from their investment. So, how can an app be monetized?

Here we will address everything about app monetization and let you know how to maximize app revenue. Before this, we will let you understand the fundamental idea in terms of the real significance of app monetization and how it operates.

What is the meaning of App Monetization?
To define the meaning of app monetization, it is a way to earn money from the app even without charging for download. It enables you produce revenue from your app, with adequate planning and, indeed, the correct approach. In many respects, you can gain revenue from your mobile app, including buying in-app, marketing, information selling, one-time payment, and more. According to the source, buying in-app is used more widely by developers around the globe.

A Pharid Dot Com Pvt. Ltd. will assist you choose the correct monetization approach to gain maximum revenue. They select the correct monetization model according to your app type and effectively integrate the same.

Hiring the correct one from the top app monetization firms list should be concentrated to create your plan more dynamic.

How does App Monetization work?
The most interesting fact about app monetization is that even a free app can earn money. Isn’t that? As mentioned above, there are several methods to monetize a mobile app. Advertising is the most prevalent model of app monetization that is used to a higher degree late.

In this model, your mobile app will show advertisements or commercials from separate products and customers will pay you for every click. In this trend of app monetization, third parties pay the mobile app owner.

So if you’re considering this way of monetizing your app, you should also consider Google AdMob. It’s the best app monetization platform to create revenue from your app and maximize your earnings from both advertising and in-app purchase.

It’s the best app monetization platform to create revenue from your app and maximize your earnings from both advertising and in-app purchase.

How much money one can earn through Google AdMob?

It’s one of the frequently asked questions by majority of app owners. Well, your earning from Google AdMob depends on several factors;

  • The selected revenue model for your app.
  • Your app revenue model for earning money from users who click your ads.
  • Or you just rely on in-app purchases.
  • Efforts you put in your app promotion.
  • Organic promotion or ads.
  • User engagement

What is the strategy for App Monetization?

Look at some of the most sought-after app monetization policies in 2019 that are gaining tremendous attention from app developers to churn out a enormous income. These approaches are also the best answer for those seeking answers on how to monetize the Android app or iOS app.

In-App Purchase and In-App Advertising

It is the most trusted app monetization models on which app owners have every reason to depend. By combining in-app purchase with in-app ads, you can expect better results. This is now being implemented by a majority of developers to maximize the app’s earnings.

But, it’s fact that combing in-app purchase (IAP) and in-app advertising (IAA) is not easy. The actual reason is these two have different vendors. Developers tackle this issue by designing functionality to bring both IAP and IAA under a single roof.

 

Collect and sell data for cash

It’s another tested and attempted strategy of app monetization that you can use to earn cash. All you need to do is maintain in mind about privacy and law. This act, however, is definitely not an illegal activity. You can obtain email IDs or contact user numbers from your app and sell them to others who need the same to run their online marketing campaigns. And they’ll pay you a heavy price for that.

Nearly every free app depends on this monetization strategy app and earns heavy revenue from their applications.

Make Ads Localized Through Technologies

Of course, advertising is the best way to monetize the app. But, too many advertisements sometimes distract users and eventually make them extremely frustrated. So, it also tends to ruin your attempts to monetize your app.

It’s easier to locate your advertising campaign using state-of – the-art systems such as WiFi, GPS, Beacons, etc. These are the most helpful technology stacks that enable real-time targeted mobile ads to readily communicate with customers when they’re near the shops. Users tend to be more likely to access advertisements when they are closest to a specific store’s place to purchase anything.

Virtual Currency

Virtual currency is something that is used to monetize mobile apps, particularly game apps. Users can gain currency by playing online games and achieving a defined amount. You can set certain circumstances, such as downloading certain applications, playing more, or gaining currency through certain ads, to promote users to win more virtual currency.

Affiliate Marketing

If your app is popular, then you should let other companies promote their products and services to enhance revenues. They will pay you, of course, in exchange for it. Although it is the most popular mobile app monetization approach yet extremely efficient, particularly for game applications.

You will gain cash in affiliate advertising when brand produces leads through your app. To maximize revenue, you need to plan a unique approach. Using affiliate advertisements, you can promote customers to redeem their points, receive virtual currency or more.

Freemium

As the name indicates, freemium applications are free to download from customers. Users need to access certain premium characteristics that are paid for in order to use the app. Through their freemium model of app monetization, you can thus gain cash. This model’s primary intention is to attract consumers to boost the download of the app.

The more app downloads, the more revenue will be produced. In other words, the user engagement of the app determines how much cash you can earn through the freemium model.

Subscription

In order to get the maximum out of this app monetization model, always try to create content updated and new. Remember, consumers are not interested in paying for ancient or meaningless material. So hold this thing in your mind at all times.

All you need to do is create a correct routine to update your app to encourage users to frequently access and participate with your app. In other words, you should encourage customers to spend more time on the app, and this will definitely make your app monetization strategy a success.

We would love to hear your comments relating to the post. Got some other thoughts? Drop us words through our contact page.

 

The post 7 Strategies to guarantee the results of App Monetization in 2019 ! appeared first on Pharid.

]]>
https://www.pharid.com/7-strategies-to-guarantee-the-results-of-app-monetization-in-2019/feed/ 0
How I got $15000 business transaction within 365 days by working inside a dark room? https://www.pharid.com/storybehind/ https://www.pharid.com/storybehind/#respond Sat, 06 Apr 2019 17:40:29 +0000 https://www.pharid.com/?p=3185 The story of how apps I built in 12 months gained 500 + sales, did a business of about $ 15,000 + and generated a full — time salary and made a big presence in the Envato market. A story about the products of Pharid Return to May 2016 and I was in 9th grade. […]

The post How I got $15000 business transaction within 365 days by working inside a dark room? appeared first on Pharid.

]]>

The story of how apps I built in 12 months gained 500 + sales, did a business of about $ 15,000 + and generated a full — time salary and made a big presence in the Envato market.

A story about the products of Pharid

Return to May 2016 and I was in 9th grade. My life was like a story with a lot of sad events. Everybody hates me at that time, even if they were kept away from my soul. I was unsuccessful because my partnership company crumbled because of the unlawful and irresponsible attitude of my partners towards business activities, and at that time because of my age, I had to keep myself down in every business decision. My father was offered me to work on his business, but I rejected my father’s proposal because of my computer programming intention. And the development profession of my app started with zero support from my family. After that, I started working on my dream project, ABC Mobile Security, inside the dark room with the support of my brother, without money, which was my first product for the market place called Envato. I spend a total of nine months developing it out of the sketch. The development period was the most painful moment in my programming life I’ve ever experienced. But Abc Mobile Security’s success fulfilled all my desires and expectations as I say the invention gave me plenty of money to buy family love and support.

The story behind the “ABC Mobile Security” revolutionary product has a lot of pain. This product helped me solve all the problems I was struggling to live at that time. It’s been sold to Felix Tech Pty Ltd, Singapore. They offered me to work at the company, but my intention was to become a great Nepali entrepreneur so I rejected them.

2018, a year I’ve been able to develop 15 + apps in the dark room that help me gain popularity among the brilliant authors of Envato. The invention of technology is always at the top of my priority.

I am the CEO and founder of Pharid Dot Com Private Limited, a startup company. I managed to achieve more than $15,000 (15 lakhs NPR) business transaction in my company’s first year, raised more than $9,000 (9 Lakhs NPR) net earning, and was perceived as’ successful’ (unfortunately things didn’t end up like that) in Envato Market.

It was very common for people to come up with me to ask what the magic was to make an app that was successful. I would have fudged through my way and made something people wanted to buy, but could I recreate it?

Hatching An Idea

In one night, I wanted to build an app, not tell a single person about it, and run some experiments on it to see if I could get it to some success level. I thought I might get some dollars and make a few hundred dollars.

I wanted an idea that I had no domain advantage in at all, so what better for a Arabs and some countries whose government banned to browse something that people really addicted about so I developed eVPN app. The VPN was getting a lot of press (and buzz) at the time on sites like the New York Times and Hacker News, so I already had some customer validation around the idea.

There were a couple of key goals for the app:

  • A lots of free VPN Servers

Many other ideas and features ran through my head, including:

  • iPhone support.

Given a short time frame all this had to be cut (for now).

Sales of all Products

Over 2018, sales were steady, which is even easier to see with a cumulative graph.

Almost 60% of the profit was from the ARAB.

What’s Next For Me?

I’m now focusing on API Centralized Application such as weather, movies, social network, ecommerce platform, games, which I wanted to do. We’ve got so many exciting features coming soon. It’s amazing to be excited about an early stage startup, adding and serving a new paying customer, talking to customers and building what they want. It’s quite addictive.

Final Words

One thing that Clients said to me on the calls and messages , “We probably wouldn’t have considered buying your app if we hadn’t read the story”.

“How important is it to create a story around your product?”

I think I’ll call that a ‘very important’.


If you liked this story please help spread the word by hitting the recommend button below. Thanks!

The post How I got $15000 business transaction within 365 days by working inside a dark room? appeared first on Pharid.

]]>
https://www.pharid.com/storybehind/feed/ 0
GDPR: Most in – depth Compliance Guide https://www.pharid.com/gdpr-the-most-in-depth-guide-to-compliance/ https://www.pharid.com/gdpr-the-most-in-depth-guide-to-compliance/#respond Fri, 05 Apr 2019 17:46:37 +0000 https://www.pharid.com/?p=3189 The introduction of the European Online Data privacy law will have a big impact on how organizations handle and manage the personal data of the users. The law, which was passed in January, will be fully enacted in 2018. For organizations that regularly handle customer or personal data serving European citizens, questions arise relating to […]

The post GDPR: Most in – depth Compliance Guide appeared first on Pharid.

]]>

The introduction of the European Online Data privacy law will have a big impact on how organizations handle and manage the personal data of the users. The law, which was passed in January, will be fully enacted in 2018. For organizations that regularly handle customer or personal data serving European citizens, questions arise relating to the technical implications for their online web applications and operations.

The major directive of this law empowers individuals to control their data. It means that entities that ask people for personal information online must inform them exactly what will happen to that data, from the moment it is submitted.

The most important aspects of the law are these four:

  • Easier access to your own data: individuals will have more information on how their data is processed and this information should be available in a clear and understandable way.
  • A right to data portability: it will be easier to transfer your personal data between service providers.
  • A clarified ‘right to be forgotten’: when you no longer want your data to be processed, and provided that there are no legitimate grounds for retaining it, the data will be delete.
  • The right to know when your data has been hacked:For example, companies and organizations must notify the national supervisory authority of serious data breaches as soon as possible so that users can take appropriate measures.

So how do you implement an application that’s compliant with the directive, one that provides complete control of personal data to users? What follows are 15 guidelines, based on the OWASP Top Ten Privacy guidelines:

1. Determine whether the app really needs all the requested personal data

The ideal privacy implementation saves as little personal data as possible, such as birth date, name, country of residence, etc. This is not possible in all cases; some entities will need more information. In all cases, though, developers and management should define exactly which data is absolutely necessary.

2. Encrypt all personal data and inform users about it

If an application needs to save personal information, the data should be encrypted with proper and strong encryption algorithms, including hashing. In the Ashley Madison data breach, all personal data was in clear text, which had huge consequences for its users. It should be explicitly stated to users that all their personal data, including phone numbers, country of residence, and address, will be encrypted and hashed to avoid any form of data extraction and potential exposure in case of a data breach.

3. Think OAUTH for data portability

Protocols for single sign-on such as OAUTH allow users to create accounts by simply providing another account, but they also assure that no personal data other than the authentication ID from the other service is stored.

4. Enforce secure communications through HTTPS

Many entities do not use HTTPS for their websites because they do not consider it necessary. For example, if the application does not require any form of authentication, then HTTPS might not seem needed. But it’s easy to overlook some things. For instance, some applications collect personal information through their contact us forms. If this information is sent in clear text, it will be exposed through the Internet. Also, you should make sure that the SSL certificate has been properly deployed and is not exposed to vulnerabilities related to SSL protocols.

5. Inform users about and encrypt personal data from contact us’ forms

Applications do not collect information only through authentication or subscription, but also through contact forms. Most of this information is personal, including email address, phone number, and country of residence. Users must be informed how this data will be stored and for how long. The use of strong encryption is highly recommended for storing this information.

6. Make sure sessions and cookies expire and are destroyed after logout

Users must have proper visibility about the use of cookies by the application. They must be informed that the application is using cookies, the application should provide the opportunity for users to accept or deny cookies, and cookies must beproperly destroyed after inactivity or logout.

7. Do not track user activity for business intelligence

Many e-commerce applications on the web track users to determine their tastes through their searches or products bought. Often, companies such as Amazon and Netflix use this sort of information for their recommender systems. Because users’ personal taste and choices are being monitored and stored for commercial purposes, the users should be able to accept or reject this as an option. If users decide to accept such tracking, they should then be told how the data is saved in the system and for how long. And, of course, anything related to personal information should be encrypted.

8. Tell users about logs that save location or IP addresses

Many applications use IP addresses or locations as a parameter to control authentication and authorizations, and they log this information in case someone attempts to bypass authentication controls. Users should be told about this, as well as how long the logs will be saved in the system. Never include more sensitive information such as passwords in the logs.

9. Store logs in a safe place, preferably encrypted

Keep any logs that contain user information in a safe place and inform users about what happens to these logs:how they are stored and how long are they retained. The logs themselves should be encrypted.

10. Security questions should not turn on users’ personal data

In many applications, security questions are used as a form to confirm the identity of a user. These questions should not include personal components such as mother maiden name or even the user’s favorite color. If possible, replace these questions with two-factor authentication. If that isn’t possible, let users create their own questions and warn them against creating questions that contain personal data. Any information provided should be encrypted.

11. Create clear terms and conditions and make sure users read them

Don’t hide away your terms and conditions. Under the new EU privacy laws, terms and conditions should be on the landing page of any web application and be highly visible at all times while the user navigates the application. An enforcement mechanism is necessary so that users have to agree to terms and conditions before being allowed to access to the app, especially when terms have been changed. The terms and conditions should also be in language that is easily understood.

12. Inform users about any data sharing with third parties

If your organization shares personal data with third parties, whether they are external plugins, affiliates, or government organizations, that fact should be included in the terms and conditions.

13. Create clear policies for data breaches

One of the most important aspects of the EU law is the right of users to be informed if a data breach occurs. Organizations must implement clear policies that establish roles and steps to follow so that, for example, users are promptly informed about any breach.

14. Delete data of users who cancel their service

Many web applications do not make it clear what happens with personal data after a user has canceled the service or deleted an account. With the right to be forgotten, companies should respect the right of users to delete all their account information and related data. It must be visible to users that they can leave a service and all their data will be deleted. Companies that treat deleted accounts as merely inactive could run afoul of the law.

15. Patch web vulnerabilities

As mentioned on the OWASP Top 10 list, one of the major data privacy risks involves web application vulnerabilities: Vulnerability is a key problem in any system that guards or operates on sensitive user data. Failure to suitably design and implement an application, detect a problem or promptly apply a fix (patch) is likely to result in a privacy breach. Make sure your organization has a program in place to assess cyber risks and do penetration tests and patches effectively.

Share your best practices for apps that are compliant with privacy law below.

The contents of this website reflects the views of the author(s) and are not necessarily those of Micro Focus, its subsidiaries, or other affiliated companies. The information contained in this website is provided for informational purposes only, and should not be construed as legal advice on any matter. The only warranties for Micro Focus products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Micro Focus shall not be liable for technical or editorial errors or omissions contained herein.

The post GDPR: Most in – depth Compliance Guide appeared first on Pharid.

]]>
https://www.pharid.com/gdpr-the-most-in-depth-guide-to-compliance/feed/ 0
Trip to Android Developer https://www.pharid.com/journey-to-become-android-developer/ https://www.pharid.com/journey-to-become-android-developer/#respond Tue, 26 Mar 2019 14:11:25 +0000 https://www.pharid.com/?p=3168 I still remember the day back in 2016 when I decided to start developing Android, and that was one of the best decisions I’ve made in my life. It’s been around two and a half years now and I’ve had the opportunity to learn a lot of things in Android and to unlearn them. I […]

The post Trip to Android Developer appeared first on Pharid.

]]>
I still remember the day back in 2016 when I decided to start developing Android, and that was one of the best decisions I’ve made in my life. It’s been around two and a half years now and I’ve had the opportunity to learn a lot of things in Android and to unlearn them. I didn’t have a mentor or someone at first when I started to guide me to do things the right way. I made a lot of mistakes and wasted a lot of time and rectified them later. Later, after a year and a half, I got the chance to work with Envato Market, who endorsed my first “ABC Mobile Security” project after 3 times hard rejection and 1 time soft rejection.

At that time, I was fighting to sell my first app to Envato Market with my own mind. I was depressed by the Envato officials ‘ bad comments about my product, but I never gave them up and that’s why I’ve been working with them over the past 1 year. I developed 15 apps this year and they’re at Envato Market. I learned what to do and what not to do most importantly. I’ve been trying to help other developers in ways I can, directly and indirectly, for quite some time. In this article, I’ll share some of the gems I’ve collected over the years. It might help someone get started faster and not repeat the mistakes I made once. Disclaimer: I’ll focus primarily on Android and some programming and product development concepts in this article, so if you’re not familiar with any of these, you may not want to read more. Others, just plunge into it. That’s right. 🙂

1.Don’t reinvent your wheel

I had a bad idea not to use open – source libraries at first. I just wanted to do it myself, whatever I needed. It was a terrible idea seriously.

If you have a problem developing your app, and if someone else has solved that problem before and in a good way, why not use it? You can save a lot of time for yourself.

2. Choose Libraries Wisely

In Github there are lots and lots of open – source libraries that you can use for FREE. But don’t get too excited and blindly begin using libraries. Check the number of stars the library has, the better. Check if some other popular libraries were also created by the author of that library. Check out the issues (open and closed) that can give you a better understanding of how robust and stable the library is in production.

You should dive into that library’s code if you can afford the time and check yourself if it’s really worth it You just want to make sure your code is reliable, bug – free and high – quality.

3. Sit, Take a Cup of Coffee and Read More Code

We spent most of our time reading others code than writing ourselves. If you are not doing that, START today. Whatever code you are able to write today is only because you have read and learned something, somewhere, someday. It’s just a reflection of what you already know. You can only grow and improve yourself by reading and learning from other work.

The great thing about Android is that it is a completely open-source platform. Dive into the code and check how they have implemented the framework. There are thousands of open-source libraries in Github. Just pick a library and see how the developer have implemented it.

4. For God Sake, Maintain Proper Coding Standards

If you compare coding with writing, then coding standards is like your handwriting. As you would be reading more of others code, other people will also be reading a lot of your code and you don’t want to scare the shit out of them, do you? And if you are working in an organization and collaborating with other developers heavily, do take special care about it. Write short, clean and readable code that YOU and people reading your code would enjoy thoroughly. Your code should read like a story.

Code is Poetry. Don’t complain if you write a piece of code and your colleagues don’t talk to you for a few days. Bonus To start with, you must thoroughly go through this && this

5. You Need ProGuard, Yes, You Need It!

Never ever, ever make the mistake of releasing your app on the Play Store without using ProGuard. ProGuard not only minifies your code, but it obfuscates your code making it harder for reverse-engineers to understand, replicate and manipulate it. Its absolutely free and comes bundled with the Android SDK, and there is absolutely no reason for you not to use I have seen several developers releasing their app on the market without ProGuard. It should not take more than a few hours for a not-so-skilled hacker to manipulate an the app released without Proguard. Pro Tip: But if you want top-notch security, then ProGuard is like a cardboard while you need a safe, and here it is, DexGuard.

6. Analytics Is Your Best Friend

If you want to create a truly amazing app, you need to heavily rely on analytics tools to analyze the performance and usage of different parts of your app. By analytics, I refer to both crash reporting and app usage tracking and you need both of them. Whatever you do, you can never make something perfect. When real users will start using your app on a variety of Android devices and on various Android versions available, you will even see some of your best written code to fall flat on the ground. Crash reporting tools can help you to track and fix them, one crash at a time. You also need to start thinking like a marketer and analyze the usage of various portions of your app. This is what will help you bridge the gap between what you made and what your users actually want. Pro Tip: Here is an affordable market analysis tool, I love to use.

7. Time to Optimize Your App

This is something that most of us generally dont do, but you should and you need to. There is a big difference between writing code and writing optimized code. Write code that runs quickly, takes less memory and consumes less device storage. An unoptimized app works well under normal circumstances, but when put to different stressful situations, it can show you its true colors. Check the amount of memory used by your app and look for memory leaks. Remember, a tiny leak can sink a big ship. Spend time on understanding how the Garbage Collector works in Java, create heap dumps and analyze your live objects. Pro Tip: Use Leak Canary to detect your memory leaks. It can save you a lot of time by automating this task for you.

8. Test, Test and When You Are Done, Test Again!

There is nothing more important than testing. This is something that should be at the top of your list. Test your app as thoroughly as possible. Spend time for writing automated test cases. Create various stressful situations for your app and see if it can survive. I had once made the mistake of releasing my app out of hurry and didn’t spend proper time testing it. I was waiting for my users to face bugs, report it and then I would go and fix them. Never, ever, ever do that. You might save a day, or two, or a week by cutting down time from testing, but will probably have to spend more than twice later. Don’t do anything out of hurry, take your time and think long term. Be a visionary. Sow now, reap later.

9. Make it Difficult for the Hackers

The open-source nature of Android is what makes it vulnerable to attacks. Every Android app can be decompiled, reverse-engineered, ripped open, analyzed and manipulated with ease.You don’t want that to happen to your app, right? You should know how to securely store API keys locally in your app. If you are dealing with sensitive data of the users, then you must know how to encrypt them, what algorithm to choose (secure yet fast).You should also store the encryption keys securely either in the server or locally (if needed). You should prevent your app data from being backed up using the ADB (Android Debug Bridge).

If you are storing sensitive data in the database, consider obfuscating it. If your app has a premium version which gets cracked and gets released for free. You would incur a serious loss in business, right? There are several things you can do to prevent your app from getting tampered.

There is nothing like 100% security. Any skilled and determined hacker with the right resources, tools and patience can crack your app. All you want to do is make it difficult, rather very difficult for the hacker to crack it. I have tried to share some of the lessons that I have learned in this short journey with Android development. I will continue my journey, learn more and share even more. I hope it helps someone and makes their life a bit easier.

If you like this article, do give it a thumbs up, comment on it and share with with your friends.

The post Trip to Android Developer appeared first on Pharid.

]]>
https://www.pharid.com/journey-to-become-android-developer/feed/ 0
Press Release – QRecorder https://www.pharid.com/press-release-qrecorder/ https://www.pharid.com/press-release-qrecorder/#respond Thu, 27 Sep 2018 13:59:18 +0000 https://www.pharid.com/?p=3154 Press Release (For Immediate Publication)   ” The Misuse of Pharid’s codes and Algorithm by the hacker “ Butwal, Nepal September 27, 2018 The QRecorder’s users’ has been a victim of malicious program called Spy.Banker.AIX program. The QRecorder application of another Publisher named  “NickBaza”  bought the source code ( License ) from me through Codecanyon.net. […]

The post Press Release – QRecorder appeared first on Pharid.

]]>
Press Release

(For Immediate Publication)

 

” The Misuse of Pharid’s codes and Algorithm by the hacker “

Butwal, Nepal September 27, 2018

The QRecorder’s users’ has been a victim of malicious program called Spy.Banker.AIX program. The QRecorder application of another Publisher named  “NickBaza”  bought the source code ( License ) from me through Codecanyon.net. So, The alligation which is claimed by the media of the poland about me is totally false.

I ( Pharid Ali ) do sell a lots of app’s source code to the people all around the world every months through a marketplace called Envato.  Envato is a Marketplace where people can buy themes, apps, templates, etc easily. And The Codecanyon.net is  a branch of Envato where i do sell a lots of app on the regular basis. And in the context of QRecorder, 13 sales already done.  I have two suspected buyer from Russia and Spain. As per App’s laws, People cannot use same name and same graphic for a same app. But these are the suspect uses same name and same graphic which one was removed his app from the google store after the publication but one uses the same name for a month and i was tried to contact him through email but he never replied to my mails. The Source code(License) price is 29 US Doller on the codecanyon.net that means who bought the license, they will have a same app like QRecorder and can do publish to playstore by changing some materials like graphic, app color, app name and package name. I think the bad guy who bought my code has modified my source code and add his evil codes to do harm the people.

I Apologies for the devastating cause of my codes which was used by some bad guys to stealing millions of crowns of innocent people from their bank’s account. I’m honest computer programmer and my aim is to provide better service and security to the modern generation by developing a great  mobile application. I’m ready to co-operate with the government of POLAND on this matter.

Your Sincerely,

Pharid Ali

(QRecorder Developer)

Email : asoftplus@gmail.com

Website :  http://pharidali.com.np

 

The post Press Release – QRecorder appeared first on Pharid.

]]>
https://www.pharid.com/press-release-qrecorder/feed/ 0
Which technology to choose for your Mobile Application Development: Hybrid or Native https://www.pharid.com/which-technology-to-choose-for-your-mobile-application-development-hybrid-or-native/ https://www.pharid.com/which-technology-to-choose-for-your-mobile-application-development-hybrid-or-native/#respond Mon, 18 Dec 2017 14:05:44 +0000 https://www.pharid.com/?p=3157 What are your alternatives if you need to develop a software? There are only Two- Native or Hybrid. And if you’re a non-technical individual like me, then its next to impossible to allude between a native app and a hybrid app. For us, user experience is the prime focus; smoother the app, better are the […]

The post Which technology to choose for your Mobile Application Development: Hybrid or Native appeared first on Pharid.

]]>
Native-Hybrid-banner

What are your alternatives if you need to develop a software? There are only Two- Native or Hybrid. And if you’re a non-technical individual like me, then its next to impossible to allude between a native app and a hybrid app. For us, user experience is the prime focus; smoother the app, better are the chances of it being utilized by the end user.

It’s been cited in a survey that a consumer makes two or three tries to use an app, and upon failing to receive the performance they are expecting they uninstall it immediately. So, the margin of mistakes for an app to be successful may be very small. There are specific capabilities that exist on native app development systems like iOS and Android and there is more usability in hybrid systems like React Native and IONIC.

On which platform do you want your mobile application to be constructed, Hybrid or Native? Answering this question is not as easy as it seems. This consists of a business idea, the viability, demographics, geographic, financial feasibility and the most important of all is what users want to have in the application in terms of features? You must consult with experienced agencies who can develop your application which is feature rich and user-friendly at the same time.

Pharid Ali is an independent developer which is into mobile app development business, and has been providing app development services to his customer to make the right decision which influences the success of an application. In this blog, I have compiled the Q&A to acknowledge the pros and cons of using Hybrid or Native app platforms.

 

What is Native Application?

It is an application that is developed for a particular mobile device or application development platform. Native applications are written for particular device operating system to make use of all the features and coding that the native platform offers.

Mostly, native Android mobile apps are written in either JAVA or Kotlin using native Android SDK. To write a code for a native application we use Android Studio necessary SDK’s. All iOS applications are written in Objective C/Swift using native iOS SDK and Xcode for development.

Native app development is a prime choice for the developers as it easy for them to utilize most of the platform features.

 

Pros:

  • Developer can write code using native SDK
  • Greater User Experience – developer can utilize the full potential of the platform and deliver greater user experience.
  • Greater Security
  • Can use native features like Sensors, Camera & Push Notifications

 

Cons:

  • For each native platform, developer has to write code from scratch
  • Takes time to develop an application
  • Developing an application on Native platform cost will be higher compared to hybrid app
  • Specific knowledge of a particular platform is required.

 

What is Hybrid Application?

Hybrid apps are written to be used on multiple devices utilizing common features of app development platform and are written using Javascript, HTML, and CSS. One can build cross platform applications using tools like IONIC, Cordova, React Native to build a hybrid application which runs in a web view. They provide a way to develop a multi-platform application using a single code base.

A hybrid application is gaining a steep rise in its demand, as it is easy to integrate with device and web view. When you are on tight budget or constrain and want to release the application quickly or have less hardware interaction, in such cases, we recommend Hybrid apps.

 

Pros:

  • It can be deployed across all the major platforms easily.
  • Developer can write a single code base and compile it across multiple platforms.
  • If you want speedy development or want to release your app idea sooner, Hybrid is the best option
  • Easy to write code, and easy to integrate with backend.

 

Cons:

  • Performance is the major constraint as it renders the application in web view which slows down the performance
  • It has very limited access to hardware libraries like Sensors, Camera, etc.
  • Its hard to develop components like native apps sometimes as the cost goes very high
  • UX of the Android and iOS app are identical, which is not appreciated by the end users. It is very difficult to build an application utilizing maximum benefits of the native features, which is not cost effective at times.

 

Conclusion

Choosing whether to develop an application on Hybrid or Native platform is difficult, As the pros and cons vary from platform to platform. One may have to consult an experienced mobile app development company to provide the proper knowledge through choosing the right platform for developing the mobile application.

The post Which technology to choose for your Mobile Application Development: Hybrid or Native appeared first on Pharid.

]]>
https://www.pharid.com/which-technology-to-choose-for-your-mobile-application-development-hybrid-or-native/feed/ 0