Week 1 | T&L Activities:A1 Types of mobile appsThe characteristics and implications of different types of mobile applications• native apps – those that are programmed for, and installed on, a specific mobile platform A native app on a mobile platform would include, calculator, dialer, camera, memo, music player, microphone, accelerometer or push notifications, and many more. Essentially any app that is developed for that platform that is able to use and take advantage of the manufacturer's functionality builtin to the device. Examples of native applications range from navigation programs, such as Waze, to social apps, such as Twitter, or games, such as Pokémon Go. Pokémon Go efficiently accesses system functionalities -- GPS for mapping locations, the camera for augmented reality, and the accelerometer to measure acceleration -- for the best possible user experience. Pokémon Go can also take advantage of push notifications, which are designed to bring users back to the game over time. A native app installs directly on a mobile device. Data associated with the native app is stored on the device or remotely -- such as in cloud-based storage.
• web-apps – remote apps not required to be installed on the device, e.g. mobile web pages A web as uses access to the internet to run, there is no installation on to the mobile device of any software or functionality. The web app uses a remote server to operate within the mobile platforms' web browser. A limitation of this type of app would be limited access to the mobile platforms' functionality and hardware resource. Most web apps are designed to mirror or mimic a mobile platform's presentation, giving the impression of a native app.
• hybrid apps – cross-platform-compatible scripting that can be installed on a device.
A2 Context of mobile appsHow the features, purpose and context of mobile apps impact on their design, development and useThe interface design of an app is key to its success or failure, ultimately an app created is to provide a user something that the native operating system and device do not already offer the user, or, to enhance what is already there. Included below are a list of capabilities that devices can provide users. • locale, e.g. maps • utility, e.g. file manager • productivity, e.g. office • immersive full screen, e.g. games • entertainment, e.g. music players • widgets, e.g. news ticker, quick device settings. How well these apps do requires consideration of the user's. What are their needs, for example, users looking to have some sort of satellite navigation app will require internet capabilities to get update on traffic, maps to lead the way and GPS, they are not interested in using the camera to take photos or videos of their travel (or are they, could this be linked to black boxes!?). The preferences of the user, do they require the app to display in dark/night colours, how they would prefer to interact with the app, using large buttons or swipe-able content, or the use of voice input, or, simply in landscape mode. The user's characteristics need to be reflected on do they require a colour set specific to those with colour blindness or even larger sizes for impaired users. Once we are able to reflect and evaluate our users we are able to start building our app's in terms of not only its visual appearance but its functionality and also its usability whilst also considering accessibility.
A3 Mobile device integrationThe characteristics and implications of integrating mobile app services on different mobile devices.The user interface, Operating systems and Hardware. The user interface is the point at which all our users interact with our apps, commonly referred to as "UI" the user interface is a combination of the hardware and software of the device. The devices operating system is its software, dependant on the device that you are using its operating system or "OS" can be different. Commonly the two major players in the mobile device market are, IOS apples proprietary operating system, and, Andriod which is an Open source (however mod-ed by companies to fit their devices) small screen, touch screen. The software on each of the device supports and enable hardware to be accessed and interrogated to provide functionality within developers apps. For example within most mobile devices users will be able to access GPS (global positioning system) capabilities, an accelerometer to allow users to orientate their device to a specific format, i.e landscape or portrait (this is also used in a "digital spirit level") • Device permissions, e.g. read phone status, network access, read contacts
Files that support this week | English:
|
Assessment:
Question and Answer - Verbal discussion with learners to quantify understanding
Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. |
Learning Outcomes:
Learning aim A: Investigate mobile apps and mobile devices A1 Types of mobile apps |
Awarding Organisation Criteria:
|
|||||||||||||||||||||||||||||||||||||||||||||
Maths:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch and Challenge:
|
E&D / BV | |||||||||||||||||||||||||||||||||||||||||||||||||
Homework / Extension:
|
ILT | |||||||||||||||||||||||||||||||||||||||||||||||||
→ | → | → | → | → | → | |||||||||||||||||||||||||||||||||||||||||||||
Week 2 | T&L Activities:A4 Mobile app programmingUnderstand development options and environments for developing apps.
Programming languagesThere are a number of programming language available to develop a mobile device app. No one programming language is better than the other. Development of an app and the language used is dependant on the device that the app is intended to be deployed too. In the development of an app to be used on the Apple platform apps are written using "Objected C". This language is a superset of the original programming language "C", which was developed and released in 1983. Java is another language used to develop mobile apps, like Objective C it is classified as an "Object-oriented programming language". Java has a similar syntax and structure to Objective-C and programmers that learn one language find it easy to learn the other due to its similarities and structure. Java is used in the development of Andriod applications along with XML (eXtensible Mark-up Language). How much does it cost to place a developed app into the Play Store for Andriod and App Store for Apple? Create a set of screenshots to support your findings.
Programming environments - Android Studio, Xcode.Andriod Studio Andriod Studio a free to download tool that enables the development of Andriod apps. The image above presents how the designer and programmer is able to see the application in its visual and coded appearances, the tool enables them to not only program and code in elements to the app, but, also to drag them in from a set of pre-defined tools from a menu.
XCode Xcode is the environment used to create Apple IOS apps, this tool is only available to use on Apple computers as the do not have a Windows/PC version available. Files that support this week | English:
|
Assessment:
Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. |
Learning Outcomes:
|
Awarding Organisation Criteria:
|
|||||||||||||||||||||||||||||||||||||||||||||
Maths:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch and Challenge:
|
E&D / BV | |||||||||||||||||||||||||||||||||||||||||||||||||
Homework / Extension:
|
ILT | |||||||||||||||||||||||||||||||||||||||||||||||||
→ | → | → | → | → | → | |||||||||||||||||||||||||||||||||||||||||||||
Week 3 | T&L Activities: Learning aim B: Design a mobile app that utilises device functions B1 Analyse requirements for an app The mobile computing requirements of an identified situation: The process in which we analyse the requirements for the app will go through the following 4 areas. These areas make up what is known as a "Quad Diagram" • device capabilities required, e.g. accelerometer, GPS, the functions of the device. • input required, e.g. touch screen, voice, timed event • output required, e.g. video, audio, vibration, how the user will know something has happened. • the user's needs, e.g. location-based services, accessibility considerations
Code TimeIn this section, we will look at the beginning steps to creating and setting up your first android application. In the following "Code Time" sections we will be using the Android Studio package, this is available for download using the following link CLICK HERE FOR FREE DOWNLOAD OF ANDROID STUDIO You may be required to enable some settings in the configuration of the setup, and you may be required to download the latest android emulator package, in these tutorials we will be using a mixture of the android 9 and 10 operating systems. 1. Creating your project, 2. Select “Empty Activity” 3. Choose your project type it is worth noting that you are able to select the API you wish to use, however, caution is needed as this may reduce the number of supported devices 4. Your project window will open 5. Select, res → layout → activity_main.xml 6. The following XML should be displayed once the "activity_main.xml" document has been opened
7. Select the tab to display the visual layout of the app. 8. The design view will enable you to see the visual output of the coded app, you will be able to add object instances to the app by dragging them from the toolbar on the side. 9. Each object instance will have a set of attributes that are able to be customised, the panel below illustrates a few of the options. 10. Below are some images of design and code outputs. 11. Lets look at the code. On line 19 the button instance is being given an id, this enable this to be treated deferently to any other button On line 20 the text value is set as “Button” On lines 23-24 the tool keyword is setting the location of the button to its X and Y co-ordinates. This is measured in “density pixels” this ensures that irrelevant of the device’s screen size it will appear in that location on the screen size.
Similarly to the button xml the code above has provided on line 27 the object instance with an id, a text value on line 30 and its X and Y location on lines 31-32. 12. 13.
14. 15. 16. 17. 18. 19. Files that support this week | English:
|
Assessment:
Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. |
Learning Outcomes:
Learning aim B: Design a mobile app that utilises device functions B1 Analyse requirements for an app |
Awarding Organisation Criteria:
|
|||||||||||||||||||||||||||||||||||||||||||||
Maths:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch and Challenge:
|
E&D / BV | |||||||||||||||||||||||||||||||||||||||||||||||||
Homework / Extension:
|
ILT | |||||||||||||||||||||||||||||||||||||||||||||||||
→ | → | → | → | → | → | |||||||||||||||||||||||||||||||||||||||||||||
Week 4 | T&L Activities: B2 Designing a mobile app Producing appropriate design documentation for a mobile app to meet identified requirements is key to its overall success as it allows developers, be them as an individual or as a team to organise and position their thoughts about the app and the direction that they wish to take. Where a team is involved the documentation allows for the team to clearly know the plans but also for them to share ideas, discuss and identify potential issues and problems in the initial stages and at given times along the development process. Within the document the following are identified. • User requirements. What it is that the client would like to have accomplished by the app.
• A proposed solution: o description of program tasks o target platform(s) o screen layouts and navigation o algorithms, e.g. pseudo-code, activity diagrams o control structures o data validation o integration of device capabilities, i.e. how, when and where device capabilities will be utilised. • Alternative solutions. • Details of resources and assets to be used: o predefined code o video, graphical, audio. • Test and review schedule. • Constraints, e.g. time, phone permissions, phone capabilities, limitation of platform. • Legal and ethical considerations applicable to the equivalent legislation in England, Wales and Northern Ireland, e.g. privacy, security, use of content created by others.
Code TimeIn this session of code time we will be looking at how we create buttons in our app that once clicked run/trigger an event to happen. We will be looking at "Intents". Our objectives will be to have the following;
1. First in your app ensure that you have open the "actvivity_main.xml file. (This can be found in the project window and under app → res → layout) 2. Once open we will move in to the design view of the android studio, from here we will be creating 4 buttons, these buttons will be used to trigger 4 different events. The code lines below demonstrate that the xml is almost identical, apart from the id's 3. At this point you may notice that the button objects when the app is compiled and run in the emulator are stacked on top of each other, this is due to the constrained layout that we are using as default, however, this can be addressed by adding the following at the bottom of each of the button xml statements Where the text variable of "@id/openwebsite" is you are able to type the button id that you wish to have the button appear below. At the top of our "activitiy_main.xml" page we have the default declaration of we need to amend this to dont forget that we will need to change the close tags to at the bottom of the xml. The output in the emulator should be as displayed below. 4. Now we are going to attach the actions that we would like the buttons to perform once clicked. We will need to open a new section within our android studio app, this is where we will be creating our Java. once opened you will see the following code in the code editor section. 5. We first need to add an implement to our Public class declaration, this will enable the app to listen for the click of an object. We then need to add the button names that we have created in our actvivity_main.xml document 6. Now it is time to set our listeners and to set our variables. You will see that on lines 24 - 27 we are setting the variable elements within the app, here you will see that we are setting "openWebpage" to a button and that we will be finding the object by its id in the xml and this is "openWebPage". As you can see you do not have to use the same name in your variable declaration as to the object id that you are targeting. However, it may be good practice to do this as you may get confused. Lines 29-32 are where we set the newly created variables to listen to the app.
7. Now we are going to set the Intents for the click of the button, this is the action that will be triggered once the click has been detected. first we need to ensure that we are outside of the "Public Class" declaration so that we can create our new "Public void" (line 37) we need to set this to be onClick as the event, within the parentheses you will need to enter View view. On line 38 we use the "switch" command to get the value of the button clicked and to then send it to the right "case" to trigger the Intent.
8. The Intent! 8.1 In this section of our code, you will be able to see that the intent uses "Action_VIEW" (line 41). The action view will open the google maps application where the parsed value for the geo-reference will be input.
8.2 In this button intent instance, you will see that our intent has a reference to the "MainActivity" and then "otherActivity". What is happening here is that the user will on click be taken from the MainActivity page to another page called "otherActivity" this would be useful in an app as it could take a user to an information page, or a developer information page or even an about the app information page. 8.2.1 How to get to create a new activity in our app? We will need to navigate to our project window in android studio and right-click on the layout tab, as in the picture below. from the new option in the menu select Actvitiy → Empty Activity. Creating a new empty activity will create the associated xml and java pages in the project ready for us to make use of them. 8.2.2 Now we need to open the new otherActivity.java page as it would be nice to allow our users to know once that they have clicked that they have moved to the new page. 8.2.3 Here we can see that we have added a new "import" (Line 6) to the "otherActivity" page this will enable us to use the "Toast" widget in our app. "Toast" this is a function inside of the android app that displays a message to the user on the opening/loading of the page (Line 19). 8.3 8.4 Dialing a number inside of the app. As you can see from line 54 we need to set the Intent, we then give it a name of intent2 ( this is due to us having more than one and to make it meaningful) the intent is going to be a "new" Intent. Inside of the parentheses we need to tell the intent what action we would like to happen, in this instance "ACTION_DIAL". This will take the user of the app to the dialer application inside of the android phone and then it will parse the value within the next set of parentheses using "tel". This essentially passes the value to be used in the telephone. On line 55 the intent is actioned by starting it using "startActivity" and selecting the intent name (intent2). The outcome of the dial a number should be as displayed below
Files that support this week | English:
|
Assessment:
Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. |
Learning Outcomes:
B2 Designing a mobile app |
Awarding Organisation Criteria:
|
|||||||||||||||||||||||||||||||||||||||||||||
Maths:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch and Challenge:
|
E&D / BV | |||||||||||||||||||||||||||||||||||||||||||||||||
Homework / Extension:
|
ILT | |||||||||||||||||||||||||||||||||||||||||||||||||
→ | → | → | → | → | → | |||||||||||||||||||||||||||||||||||||||||||||
Week 5 | T&L Activities:C1 Content preparation for mobile apps• Selection and application of appropriate processing and editing techniques to prepare resources for each specific device and purpose.
• OptimisationOptimisation in any poor program is key to its overall size and portability. easy ways to optimise a program would be to review the size of files contained within it comma, for example, images, audio and any other assets capable of being reduced in physical file size by using appropriate compression techniques, such as saving in a compressed file format. other ways to optimise a program would be to reduce any duplication an unnecessary code that is contained within the application, for example using externally code repositories. • Alternative formats for screen orientation e.g. landscape, portrait.
• File formats, i.e. compatibility.On any digital nowadays the operating systems are bespoke to the device themselves, however, on mobile platforms such as phones, we have the Andriod OS and Apples IOS, these two big players within the mobile platform market count for a major proportion of it, so, why are we worried about compatibility? Each of the developer's Apple and Andriod have to have permission for their OS's to use certain file formats and it is not agreed/paid for the devices will not be able to support/use them. Therefore during the development of the app, it is important to ensure that research has been done around the files and the formats that are to be used. An example is within IOS, where flash applications are not supported.
• Compression.Compression is an important part of streamlining an app to ensure that it is no over-inflated with large files. A classic example is the use of "minifying" in HTML and CSS. This is where spaces that are inside the mark-up that are not essential are removed as this is would add extra character counts and enlarge the file. • Encryption.Encryption can work within the compression section also, however there may be sections of code or mark-up that have been specifically created giving access to restricted areas and data, this would be encrypted to ensure that the risk to the data is reduced. This is also used in passwords.
C2 Developing a mobile appProducing a mobile app to meet identified requirements through the use of appropriate programming language(s), tools and/or development environments, e.g. Android Studio, Xcode. • Programming constructs:o Constants are used to enable the system to reference a value that will not change or store any form of variability whilst the application is running. o Operators can be classified as either arithmetic or logical. Arithmetic operators include the following; Add, Subtract, Multiply, divide increment and decrement. The table below illustrates how these might be coded and displayed in an applications programming.
The logical operator is used to trigger events and procedures these can come in a range of ways as displayed below;
o Reserved words in a program or app can link to the syntax that is used as certain words work as operators and triggers within the code for example; public, for, do, loop, class, int, var, else, switch, double, do, and countless others. These words will be used to begin triggers or functions in a program. It is essential that they are not used and variable or constant name declarations as they may impact the functionality of the program. o input and output commands o local variables o global variables o assignment o sequence o selection o iteration.
Functions and procedures.
Data TypesData types are used commonly across most program languages, the table below outlines the most commonly used; e.g. char, integer, real, Boolean.
Objects and classesclasses are one of the main fundamental elements of most programming languages, especially in Java. classes can be used to represent elements within a program for example, a form, A layout, and text fields. once a class is created it can be called as an instance in the program, this means that the Instance will have all of the set attributes and properties that have been declared. However, the class may be called again at this time it will be treated as a different instance or object to the one that was called prior. Essentially the two objects who have the same makeup because they have used the original class but be treated differently and individually . for example, textbox class bought twice, once for the surname and once for the first name.
• Event handling, e.g. forms, screen components, actions.
• Utilise device capabilities, e.g. language APIs, Android Sensor, iOS Core Motion Framework.
• Interrogate device status, e.g. location, battery life.
• Orientation of device, e.g. autodetection, force orientation mode.
• Code annotation.Annotating code in any programming language is important this is because it allows a user to be able to identify key code areas and for them to also prompt and support any other coders who may be working on a project. Inside Java we use /* to open a comment, and to close the comment we use */ Comments are not normally used inside of code any comments inside of a programming code not used by the program itself and are automatically missed out in any processing or compiling. Comments can be on a single text line or span over a number of lines within a program. • Create executable for target device.
Quality control:o efficiency and performance, e.g. system resources used, accessing storage media o maintainability, i.e. the ease of modification and improving the app o portability, i.e. range of device compatibility o usability, i.e. ease of use, how easily the user can interact with the app. Files that support this week | English:
|
Assessment:
Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. |
Learning Outcomes:
Learning aim C: Develop a mobile app that utilises device functions C1 Content preparation for mobile apps |
Awarding Organisation Criteria:
|
|||||||||||||||||||||||||||||||||||||||||||||
Maths:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch and Challenge:
|
E&D / BV | |||||||||||||||||||||||||||||||||||||||||||||||||
Homework / Extension:
|
ILT | |||||||||||||||||||||||||||||||||||||||||||||||||
→ | → | → | → | → | → | |||||||||||||||||||||||||||||||||||||||||||||
Week 6 | T&L Activities: C3 Testing a mobile app Select and use appropriate testing methodologies to ensure the mobile app meets the identified requirements. • Test plans and test data. • How and what to test: o functionality, e.g. all utilities work as intended o acceptance, e.g. fitness for purpose o performance, e.g. stress loading o usability, e.g. users can complete tasks easily o compatibility, e.g. different model/brand of phone. • Selecting appropriate test users. • User feedback, i.e. response from end users regarding the app • Analysis of user feedback: o collation of results o identification of trends, e.g. ‘60% of users suggested…’. • Improving and refining the app: o making use of the outcomes of testing and review o change logs o versioning o optimising the app, e.g. exporting assets to different file formats, improving the efficiency of code, developing the user interface based on review and feedback. Files that support this week | English:
|
Assessment:
Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. |
Learning Outcomes:
|
Awarding Organisation Criteria:
|
|||||||||||||||||||||||||||||||||||||||||||||
Maths:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch and Challenge:
|
E&D / BV | |||||||||||||||||||||||||||||||||||||||||||||||||
Homework / Extension:
|
ILT | |||||||||||||||||||||||||||||||||||||||||||||||||
→ | → | → | → | → | → | |||||||||||||||||||||||||||||||||||||||||||||
Week 7 | T&L Activities: C4 Lessons learned from developing a mobile app Evaluate the effectiveness of the app that has been developed with reference to: • the extent to which the solution met the identified requirements • issues arising during testing and refinement • how the final app could be improved to better meet the needs of the user and fulfil the identified client requirements • alternative solutions that could be implemented if the task were to be repeated.
C5 Reviewing own skills, knowledge and behaviours • Planning and recording opportunities for skills, knowledge and behaviours development, including the setting of relevant targets with timescales, and how and when feedback from others will be gathered. • Reviewing and responding to the outcomes of own skills knowledge and behaviours development, including the use of feedback from others. • Own behaviours and their impact on outcomes, including professionalism, etiquette, being supportive of others, timely and appropriate leadership, accountability. • Evaluating targets set for skills, knowledge and behaviour development to obtain insights into own performance. Files that support this week | English:
|
Assessment:
Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. Anonymous Assessment - Learners assess an anonymous piece of work containing deliberate mistakes against given success criteria. |
Learning Outcomes:
|
Awarding Organisation Criteria:
|
|||||||||||||||||||||||||||||||||||||||||||||
Maths:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Stretch and Challenge:
|
E&D / BV | |||||||||||||||||||||||||||||||||||||||||||||||||
Homework / Extension:
|
ILT | |||||||||||||||||||||||||||||||||||||||||||||||||
→ | → | → | → | → | → |