Entreprenöriell programmering TDP028

Relevanta dokument
Android översikt. TDDD80 Mobila och sociala applikationer

Android översikt. TDDD80 Mobila och sociala applikationer

Entreprenöriell programmering. Android översikt

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Agil användbarhetsutveckling för handhållna enheter. Per Lind

TDP025. Entreprenöriell programmering. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

TDDD80 Mobila och sociala applikationer. Kursintroduktion

TDIU01 (725G67) - Programmering i C++, grundkurs

Android fortsättning. TDDD80 Mobila och sociala applikationer

App analytics TDP028

PROGRAMMERINGSTEKNIK TIN212

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Kandidatarbete på Industriell ekonomi

Programmeringsteknik I

Imperativ programmering. Föreläsning 4

Lab5 för prgmedcl04 Grafik

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

TDDD80 Mobila och sociala applika1oner. Kursintroduk1on

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Design och konstruktion av grafiska gränssnitt

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Thomas Padron-Mccarthy Mobila applikationer med Android, 7.5 hp (Distans) (DT107G ) Antal svarande = 11. Svarsfrekvens i procent = 14.

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Design och konstruktion av grafiska gränssnitt

Välkommen till kursen i Avancerad interaktionsdesign. Certec & EAT Institutionen för designvetenskaper

Exjobbsinformation IP3. Rita Kovordanyi, Ola Leifler, Robert Nordman

Laboration 1 - Grunderna för OOP i Java

Kursplanering Objektorienterad programmering

Kandidatarbete på Industriell ekonomi

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Kandidatarbete på Industriell ekonomi

Kandidatarbete på Industriell ekonomi

TDDD80 Mobila och sociala applikationer. Kursintroduktion

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Kursbeskrivning i franska 9AFR71. Franska 91-97,5hp

Android - En översikt samt titt på utvecklingsmiljö. Kalle Prorok 12 nov 2013

TDDC76 - Programmering och Datastrukturer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Introduktion till kursen och MATLAB

OOP Objekt-orienterad programmering

Tilldelas efter registrering

JAVA Mer om klasser och objektorientering

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 18

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Objektorienterad Programkonstruktion. Föreläsning 3 9 nov 2015

Elektronikprojekt ESS010 LP3

Evaluation Summary - CDT104 Grundläggande Webbdesign HT07 Dan Levin

ID1004 Laboration 3, 5-6 November 2012

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

undervisningslokalen

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

TDDD35 - Användbara system

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Arv. Objektorienterad och komponentbaserad programmering

Kartuppdatering. Manual för 3 års fri kartuppdatering av din Kenwood enhet 3 års fri kartuppdatering

OOP Objekt-orienterad programmering

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Grundkurs i programmering - intro

Systemintegration 2019 YRGO. Introduktion till kursen

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Föreläsning 1: Intro till kursen och programmering

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

Objektorienterad programmering med Java Swing: Händelser, lyssnare och applets

Grafiska användargränssnitt i Java

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

TDDC77 Objektorienterad Programmering

Ett enkelt Androidspel, tutorial

Classes och Interfaces, Objects och References, Initialization

Industriellt byggande, 7,5 hp

DAT043 - Föreläsning 7

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Kursbeskrivning. Institutionen för folkhälsovetenskap. Kursnamn: Grundläggande statistik med SPSS Högskolepoäng: 3 hp

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

THFR41 - Teknisk kommunikation på franska del II

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

GIT L0005B. ArcGis. Information inför kursstart

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Objektorienterad Programkonstruktion. Föreläsning jan 2016

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Lektion Händelsehanterare

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

INSTRUKTIONER OCH TIPS Fördjupningsarbete Receptarier (15 hp) och Apotekare (30 hp)

Introduktion till personal, arbete och organization, 15 hp

Kartuppdatering. Manual för 3 års fri kartuppdatering av din Kenwood enhet 3 års fri kartuppdatering

Transkript:

Entreprenöriell programmering TDP028

2 Översikt Kursupplägg Projekt Examination Öppna upp sin telefon Android introduktion

3 Kurspersonal Rita Kovordanyi, kursansvarig, examinator Android Erik Berglund entreprenöriella aspekter Josef Fagerström handledning Anders Fröberg Android, systemadministration, tekniska frågor Madeleine Häger Dahlqvist kursadministratör

4 Välkomna till i E-huset, 1 tr upp korridor till B-huset Anders Fröberg Erik Berglund Josef Fagerström Rita Kovordanyi

5 Bygga en häftig Android app

6 Vi kör Java för Android https://codinginflow.com/java-or-kotlin-android-beginner

7 Kursmål Eget större projekt Definiera och planera egen produkt Använda API:er/tekniker relevanta för entreprenöriella projekt Bli medveten om hur positionering och marknadsföring påverkar produktutveckling Användning av vetenskaplig litteratur i produktutveckling Öva på muntlig presentation - screencasts

8 Projektet Genomförs individuellt Stöd i föreläsningar, bl.a. Android grunder och best practices Konkurrensanalys Litteratursökning Seminarier Resurstillfällen med öppen dörr till oss

9 Huvudsakliga uppgifter Definiera och bygg en större Android-app på 10 hp Använda vissa centrala APIer - Obs detta påverkar er app och innebär att ni inte riktigt kan bygga helt vad ni vill Versionshantera och skriva relevanta commitkommentarer minst varje vecka under hela kursens gång

10 Mindre uppgifter Freemium-seminarium App-beskrivning Konkurrensanalys-övning Tekniskt PM Två screen-casts

11 Freemium-seminarium Läs och diskutera artiklar: Monitizing an infinite runner Why do players buy in-game content? An empirical study on concrete purchase motivations A Study of Crucial Factors for In-App Purchase of Game Software

12 App-beskrivning Kort intro till appen Tänkt användargrupp Syfte: Vad appen är tänkt att göra Kort beskrivning av användarens väg genom appen

13 Konkurrensanalys-övning Välj existerande app Analysera Vad måste en ny app ha med minst för att kunna konkurrera? Vad kan en ny app ha med för att sticka ut / profilera sig mot den existerande appen?

14 Tekniskt PM Litteratursökning och referenshantering T.ex. hur man kan använda analytics i lean utveckling T.ex. hur man uppnår modularitet i Android-kod Andra aspekter av kodkvalitet

15 Slutpresentation: screencasts Ca. 5 min långa Användardemo Kodgenomgång Tekniska lösningar du vill lyfta fram T.ex. de betygsgrundande features, API:er du har implementerat

16 Examination Du väljer att jobba mot en viss betygsnivå Du kan välja bland poänggivande API:er och tekniska features För olika betyg krävs olika antal poäng (se mer info på hemsidan)

17 I inlämnad readme i repo Förutom app-beskrivning Viktigt att ange betygsambition Vilken betygsnivå du har siktat på Lista av poänggivande API:er i appen, med kort beskrivning av varje Lista av poänggivande tekniska features, med kort beskrivning

18 Projektstyrning Krav på kontinuerliga commits med informativa kommentarer Minst en commit varje vecka, med start denna vecka Förslag på vad som ska göras varje vecka finns på kurshemsidan (Projekt > Examination)

19 Deadline för slutinlämning Måndag vecka 2 i januari, kl 17:00

20 Kurslitteratur Börja läsa här: https://developer.android.com/training/basics/firstap p

21 Schema Tätt med föreläsningar och lektioner i början av ht1 Sedan fri handledning Välkomna med frågor även utanför handledningstid, t.ex. via mail

Developer mode på telefon Eller köra på emulator

23 Praktiska detaljer Anders Fröberg har ett antal telefoner som kan lånas Emulator i programmeringsmiljön Viss funktionalitet begänsad (t.ex. GPS)

24 Installera miljön Android Studio Guide hur man installerar Android Studio: https://developer.android.com/studio/install.html

25 Egen mobil eller platta

26 Felsökning via USB-koppling

27 Emulatorn kontroller

28 Internet Emulatorn delar datorns internetuppkoppling Kolla genom att t.ex. öppna emulatorns webläsare, och se om kontakt med internet Annars: Inställningar på datorn för att dela internet

29 Virtuell kamera Nås genom att klicka på appen Kamera

30 Virtuell GPS

31 Virtuella sensorer

Android introduktion

19-09-02 Vad som skiljer Android från vanliga språk Responsivt Appar får ett par sekunder på sig att reagera på användarinput Resurssnålt Appar i bakgrunden dödas när minnet behövs för annat Så fort app:en hamnar i bakgrunden är det fritt fram för Android att döda den Jfr. Quit på en desktop, som klickas av användaren Viktigt att spara undan viktig info

34 Vanlig java jämfört med Android Lägre minnesanvändning

35 Android app

36 Kompilering Sköts av Gradle Olika inställningsfiler Talar om vilka moduler som ska kompileras Vilka bibliotek man vill ha med Vilken klass som är main

37 Projektstruktur

38 Projektstruktur Kod Resurser

39 Resurser

40 Navigation graphs Kan bygga appen från UI och sedan till kod Obs! mycket kod som genereras! Kan vara bättre att själv skapa koden Bättre kontroll, bättre inlärning

41 Deklarativ layout Skinnet, dvs. användargränssnittet (UI) på appen: t.ex. textfält, knappar Beskrivs i separat textfil (XML) Beteendet Klickhantering, etc. sköts i Java-kod

42 XML vs. kod XML Statisk placering och utseende på komponenter (dvs. kan inte ta bort under körning) Java kod Tomma behållare (t.ex. FrameLayout) kan sedan fyllas dynamiskt när kod körs Dynamiskt tillägg/borttagning av element Fyllning med innehåll

43 I koden anges vilket XML som ska användas public class MainActivity extends Activity { private EditText newtext; var dekl @Override protected void oncreate( ) { setcontentview(r.layout.activity_main); metod

44 Android UI layout i XML <LinearLayout xmlns:android="http://schemas.android.com/ " android:orientation= vertical <EditText android:layout_width="wrap_content android:layout_height="wrap_content android:id="@+id/inputtext android:inputtype="textautocorrect android:hint="@string/inputtexthint" /> </LinearLayout>

45 Hitta textfält i XML-filen public class MainActivity extends Activity { private EditText newtext; @Override protected void oncreate( ) { setcontentview(r.layout.activity_main); newtext = (EditText) findviewbyid(r.id.edittext);

46 Fånga upp klick (enkelt) I XML: <Button android:layout_width="wrap_content android:layout_height="wrap_content android:text="@string/button_send android:onclick="sendmessage" /> I Activity-kod: public void sendmessage(view view) { }

47 Fånga upp klick (rekommenderat) Skapa lyssnare i Activity-koden: Button btn = (Button) findviewbyid(r.id.mybutton); btn.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view view) { sendmessage(view); } }); public void sendmessage(view view) { }

48 Fördelar med denna lösning Anonym lyssnare Kan ha olika lyssnare kopplade till olika knappar, och input-fält inom samma klass Skickar anropet direkt vidare till en lokal metod Kan testa (anropa) metoden utan att behöva klicka på knappen varje gång Underlättar automatiska tester

Activity lifecycles

50 Activity En avgränsad mängd funktionalitet som motsvarar en task för en användare T.ex. lista alla mail i inkorgen T.ex. skriva mail Samlas i en klass som ärver från Activity

51 Ingen konstruktor, utan oncreate() public class MainActivity extends Activity { private EditText newtext; @Override protected void oncreate( ) { setcontentview(r.layout.activity_main); metod

52 Aktiviteter skapas och dödas av Android Stoppas om T.ex. telefonen roteras Dödas om T.ex. appen hamnat i bakgrunden (och ont om minne) Spara undan tillstånd i god tid. Två sätt: Ge dina vyer Id, och låt systemet spara dessa vyer Sköt det i onsaveinstancestate()

Spara undan tillstånd Mobilen harroterats Backat urappen

54 Två viktigaste life cycle metoderna public class MainActivity extends Activity { @Override protected void oncreate( ) { // koppla till xml, hitta textfält, etc. @Override protected void onpause( ) { // spara undan tillstånd

Tack! Frågor? www.liu.se