Discuss about the Communications and Mobile Computing Conference.
In this week I learned about the basics of Android application development. This week I have learned about activities, fragments, lifecycle of fragments, notification manager and intent filters. This week was more of a basic week for me in which I learned about various basics of Android and app development. I learned that an activity usually occupies the whole screen but can behave as a dialog by modifying the element. It is important that activity should be considered as an individual element of android. I also learned about the fragments and the interconnection between activities and fragments. I can say that the application developer must have a deep understanding of fragments and activities. In addition to the activities and filters, the app developers should also use the intent filter to manage the app development (Dalmasso & Datta, 2013). The lifecycle of the fragment is also an interesting concept and the success of the lifecycle depends on the design phase or the requirement-gathering phase. I can say with experience that the app developer must be able to convert the business requirements on technical requirements. While developing any android application, developer must have an end state of goal in place.
In this week I mainly learned about the UI of Android. The UI interface is often talked about in conjunction with user experience (UX), which may include the aesthetic appearance of the device, response time and the content that is presented to the user within the context of the user interface. I learned about the components of a screen, view and View Groups, Action bar in Android, adding action bar and programmatically creating the UI. From the learning of this week, I can say that User Interface is probably the most important part of mobile application. I learned that there are certain things that are common in the UI of different mobile applications and there are certain things that have to custom developed for each of the mobile application (Abrahamsson & Hanhineva, 2004). I have learned that action bar is probably one of the most important thing of a User Interface and therefore, it is important that the action bar should be established in a manner that user finds it easy to use the mobile application. It is important that the mobile applications should be intuitive in nature. It means that users should not have much of the difficulty to use the application. It is also important that developer should take the inputs from various stakeholders while developing the UI and UX. The inputs from various stakeholders would ensure that UI is the liking of various people.
This week is mainly focused on different types of views. I learned about basic views, progress bar view, auto complete text view, the list view and the spinner view. I understand that it is not always easy to develop different types of views; however, it is important to develop different types of views. In any mobile application, developer can have different types of views. It is important that developer should prioritize different views so that application can be developed in an effective manner. It would be correct to say that views can be seen as the basis of user experience. A better user experience depends on the optimization of the views. Therefore, it is recommended that developers should a deep control over the views used in the android application (Heitkötter & Majchrzak, 2013). I also learned about the static views and the dynamic views. It is important that developers should try to establish the dynamic view wherever possible. However, the dynamic view may not be possible all the time and in those situations, developer can use static views. In any of the situation, it is important that users should have an established understanding of the views that are used in the mobile application development. Among all the views, I find list view to be most simple. I feel that users should not have any difficulty to understand the list view. The list views are mostly serial in nature.
In this week, I mainly learned about the ways to display pictures and menu. This week I learned about helper methods, options menu, context menu, additional views and data persistence. The key things that I have learned is that any android application are basically the collection of various objects. A successful application is developed when all the individual objects are developed in an effective manner. This week I learned about various types of menu (Gubbi & Buyya, 2013). Among all the menus, I have learned that options menu is one of the most important menus. It is important that developers must show all the options in the options menu. At the same time, it is important that the list items in the options menu should be exhaustive in nature. It means that developer should provide the provision of all the available options in the options menu. I also learned about data persistence and the use of data for mobile app development. It would be correct to say that developers should focus on data driven application capabilities. The data driven approach would ensure that minimum bias is involved in the application development process. At the same time, it is important that the data access should be optimized. It means there should not be any major delay or lag to access the data.
This week was focused on data sharing methods and approaches in Android. This I week I learned about content providers, filtering, sorting, projections and printing cursor objects. I understand that sorting could be crucial to all the operations performed on Android platform. I learned that data sharing could be two ways or multi-ways in nature. One of the great things about Android applications is their ability to communicate and integrate with each other. It is important that the data sharing between two or more devices should be smooth in nature. It is also important that the data sharing should take less time. It means that the receiver should start to receive the data as soon as the sender sends the data. This week I also learned about various filters on android devices. If there's an installed application with a filter that matches ACTION_SEND and MIME type text/plain, the Android system will run it; if more than one application matches, the system displays a disambiguation dialog (a "chooser") that allows the user to choose an app. It is crucial that developer should filter wisely in any application; otherwise, there would not be much of the benefits of filters (Ghazawneh & Henfridsson, 2013). The filter should also be made easily accessible to all the developers, if there are more than one developer, developing the mobile application.
This week I learned about SMS and email messaging. The five key things that I learned about displaying maps, changing views, getting location, native SMS application and getting location programmatically. There was a time when SMS was in great demand. However, in recent times, the dependence over SMS has reduced. The advantages with SMS are that it is native in nature and mobile does not require data to send or receive SMS. The presence of email messaging is useful, as email has emerged as a key function for Android platform. It is important that Android platform should have the support for both SMS and email applications and at the same time the support for SMS and email should be native in nature. Another key thing that I learned this week is location. It would be correct to say that location has become an integral part of Android platform. In fact, it is not possible to image any android platform that does not have the support for location and location based tools (Charland & Leroux, 2011). A new and the latest aspect in the location-based tool is programmatic location. The use of programmatic location means that location would be detected in an automated manner and all the mobile applications would use location tool in an automated manner. The benefit with programmatic location is that it requires minimal efforts.
This week I mainly learned about networking. I learned about HTTP web services, binary data, downloading text, JSON, and sockets programming. I understand that JSON is the hot thing in the market and it is expected that there would be more and more focus on JSON in the coming time. One of the basic things that I have learned is that before you start with encoding and decoding JSON using Java, you need to install any of the JSON modules available. I understand that there are various standards like HTTP that developer should use. The use of standards is also useful as standards can be easily stored in the library and on the need basis, different developers can access the library (Sanaei & Abolfazli, 2014). However, it does not mean that there should be any leakage in terms of data privacy or security. I have learned that maintaining the data hygiene part is an important part of any application development and it is recommended that developers must follow good standards of data hygiene (Patel & Cassou, 2015). It is also important that data should be shared on the secured servers. I also realize that sockets programming is a difficult aspect and it is important that developer should also have strong testing in place for sockets programming. The sockets programming should take an inside-out approach so that testing could be adequate in nature.
This week I learned about middleware web services. I learned about repeated tasks, running tasks, mobile application testing, mobile testing methodology, and mobile test plan. I understand that it is absolutely important to have a strong testing strategy in place. It is also important that mobile application testing should not be taken into lightly. The testing methodology for mobile testing should start with unit testing, followed by system testing and system integration testing. This week I also learned about SOA (Service Oriented Architecture). The service-oriented architecture is a powerful middleware architecture that supports web services. It is important that that there should exists a strong integration between service orientated architecture and web services. There are various tools and protocols that should be followed while developing and implementing the web services. I have also learned that the connection between web services and the front end of the application should be real time in nature. It means that the web services should be always available for the applications at the front end (Xanthopoulos & Xinogalos, 2013). It is also important that these web services should be always up and running. The web services would also help to develop android platform as an ingredient of Internet of Things.
This week I learned about app stores and the various attributes of app stores. The five key things that I learned are selling on app store, icons and splash screens, app Meta data, marketing strategy, and building apps for others. I also learned about various monetization strategies used on app store. In the current day scenario, most of the apps on the app store are freely available. The apps that are freely available on the app store have a different monetization strategy through mobile advertisement. The thing about Meta Data is that Meta Data should not be stored locally. The local storage of the Meta Data can make the application vulnerable to external attack or hacking. This week, I also touched based upon the marketing strategies that can be used by app developers. There could be two key aspects of monetization, the direct monetization and the indirect monetization. With direct monetization strategy the app developer would sell the application on the app store and with the indirect monetization strategy the application would be sold free of cost (Wasserman, 2010). However, the developer would have the provision of various ad placements on the app. The ad slots should be made available on the application during the coding of app itself. In recent times, there has been an increase trend of mobile video advertisement.
This week is more focused on research and scholarship. The five key things that I learned this week are ethics in mobile app development, research and scholarship, model of research process, types of research, and historical view of research. This week I learned that designing the research process is absolutely important. At a high level, there are two types of research, quantitative research and secondary research. The quantitative research is useful in the areas where there is availability of quantitative data. The qualitative research is usually done through secondary research and literature review. In this week I learned I also learned that mix research method is a useful method of research. I learned that data collection is only one aspect of the research. It is important that the collected data should ne analyzed to make meaningful inferences. In this week I also learned about the various types of research limitations. I realized that there could be various internal and external limitations or constraints in my research work and it is important that researcher should plan for both internal and external constrains and limitations (Bryman & Bell, 2015). It is important that the researchers are scholars must also show high ethical standards. The first step towards the research process should be establishing the thesis or hypothesis. Once the hypothesis is established, research should take a stand to defend that or oppose that.
Abrahamsson, P., Hanhineva, A., Hulkko, H., Ihme, T., Jäälinoja, J., Korkala, M., ... & Salo, O. (2004, October). Mobile-D: an agile approach for mobile application development. In Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications (pp. 174-175). ACM.
Bryman, A. and Bell, E. (2015), Business Research Methods, (Fourth Edition), UK, Oxford University Press.
Charland, A., & Leroux, B. (2011). Mobile application development: web vs. native. Communications of the ACM, 54(5), 49-53.
Gubbi, J., Buyya, R., Marusic, S., & Palaniswami, M. (2013). Internet of Things (IoT): A vision, architectural elements, and future directions. Future generation computer systems, 29(7), 1645-1660.
Ghazawneh, A., & Henfridsson, O. (2013). Balancing platform control and external contribution in third party development: the boundary resources model. Information Systems Journal, 23(2), 173-192.
Heitkötter, H., Majchrzak, T. A., & Kuchen, H. (2013, March). Cross-platform model-driven development of mobile applications with md 2. In Proceedings of the 28th Annual ACM Symposium on Applied Computing (pp. 526-533). ACM.
Patel, P., & Cassou, D. (2015). Enabling high-level application development for the internet of things. Journal of Systems and Software, 103, 62-84.
Dalmasso, I., Datta, S. K., Bonnet, C., & Nikaein, N. (2013, July). Survey, comparison and evaluation of cross platform mobile application development tools. In Wireless Communications and Mobile Computing Conference (IWCMC), 2013 9th International(pp. 323-328). IEEE.
Sanaei, Z., Abolfazli, S., Gani, A., & Buyya, R. (2014). Heterogeneity in mobile cloud computing: taxonomy and open challenges. IEEE Communications Surveys & Tutorials, 16(1), 369-392.
Wasserman, A. I. (2010, November). Software engineering issues for mobile application development. In Proceedings of the FSE/SDP workshop on Future of software engineering research(pp. 397-400). ACM.
Xanthopoulos, S., & Xinogalos, S. (2013, September). A comparative analysis of cross-platform development approaches for mobile applications. In Proceedings of the 6th Balkan Conference in Informatics (pp. 213-220). ACM.