MantisDroid - Klient för MantisBT

Discussion in 'Applikationsutveckling' started by e7andy, Sep 3, 2012.

  1. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    [​IMG]
    I helgen lanserade jag äntligen min första riktiga app: MantisDroid
    Det är en klient för ärendehanteringssystemet MantisBT.

    Jag kör själv MantisBT för alla mina projekt och det fanns bara en enda Android-app för att hantera MantisBT och den var helt usel. Därför skrev jag en egen som har allt som min konkurrent har + allt som jag saknade i den och betydligt snyggare gjort.

    Krav:
    Android 4.0 eller högre.
    MantisBT 1.2.9 eller högre.

    Länk till appen på Play Store:
    https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroid

    Om någon kör MantisBT som ärendehanteringssystem så skulle det vara kul om ni kunde testa appen på lite andra enheter än vad jag gjort och återkomma med feedback. All feedback är tacksam.
    Det finns en webbplats för appen med lite mer info:
    http://www.nextsource.se/mantisdroid
    Jag har även öppnat min MantisBT för att visa allt som händer med appen:
    MantisBT för MantisDroid

    Testerna kring SSL är inte särskilt bra. Jag har bara kört med egensignerade certifikat och det funkade på min telefon med Tele2, men inte på tjejens som har Telenor...märkligt. Jag ska köpa ett riktigt certifikat och testa att det funkar bra.

    Appen kostar några kronor: 15 kr inkl. moms.

    Behörigheter som krävs:
    Internet
    Ändra på SD-kort (för att kunna spara bifogade filer)
    Nätverksstatus
    Markets licenskontroll
     
  2. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Nu har jag skaffat ett riktigt SSL-certifikat från FreeSSL. Det är gratis och gäller i 30 dagar. Enkelt och smidigt. Om man vill förlänga det sen så kostar det $49 per år vilket får anses överkomligt jämfört med vad andra SSL-certifikat kostar. Det går att få det ännu billigare, men jag ville ha ett certifikat som så många som möjligt anser är bra.

    Appen fungerar bra med det nya certifikatet. Dock inte på tjejens mobil. Efter en sökning på Google så hittade jag att det är fel i hennes APN-inställningar för services.telenor.se. Ta bort Proxy och Port så funkar det. Mycket riktigt så fungerar det nu alldeles utmärkt.
     
  3. evening.beam

    evening.beam Teen Droid Medlem

    Joined:
    Jun 20, 2012
    Messages:
    259
    Likes Received:
    61

    MINA ENHETER

    Ett bra initiativ!

    Ett par snabba synpunkter:

    Synd att du kräver så pass ny Android version. Det jag utvecklar försöker jag så långt som möjligt hålla på Android 2.1 kompatibilitet. Detta innebär också att jag har beta testare med lite äldre OS. Och det hade varit smidigt om de hade kunnat rapportera buggar direkt från sin telefon.

    Synd också att du inte kör open source för en koppling till ett system som är open source. Jag tror det hade funnits mycket att vinna på att öppna upp. Det känns lite bakvänt att du själv förväntar dig att kunna använda ett open source verktyg, men själv vill du vara stängd och profitera på det. Jag hade inte sagt något om du gjort en koppling till t.ex. AccuRev eller annat dyrt system.

    Lycka till med projektet framöver!
     
  4. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Tack för din feedback. Även om det är ifrågasättande av mina val så är det bra att fundera igenom det och se varför jag gjort som jag gjort.
    Viktiga och intressanta frågor: Varför inte stödja så många enheter som möjligt, varför inte ha öppen kod och varför inte gratis?

    Anledningen till att jag begränsade mig till Android 4.0 och uppåt:
    -Renare kod utan anpassningar till gamla versioner
    -Snyggare GUI out-of-the-box
    -Snabbare utveckling
    -När jag började så hade jag ICS (nu JB)
    -Om användaren inte snart har minst 4.0 så är det dags att skaffa sig en ny telefon. Många klagar på fragmenteringen bland Android-versioner, men varför fortsätta stödja det då?
    -Primärt så beror det på att jag utvecklar det jag tycker är bäst för mig. Om jag inte brinner till 100% för något så blir det inte bra. Nu har jag utvecklat en app som är riktigt bra och det beror på att jag har haft en enormt fokus på att få till så bra och smarta funktioner som möjligt utan att lägga tid på sånt som jag inte bryr mig om. Självklart går det att förbättra saker här och där. Det är ju bara version 1.0. Mycket ligger i kö och väntar.

    Open source & betalapp:
    -Jag kan inte se vad jag förlorar på att ha stängd kod. Möjligtvis att foliehattarna kan dra öronen åt sig.
    -MantisBT själva tar betalt för tjänster och system kring MantisBT.
    -Det är min tid jag tar betalt för. Inte nyttjandet av ett annat system. Jag förväntar mig ingenting. Om MantisBT börjar ta betalt på något sätt så är det upp till varje användare om de vill fortsätta nyttja det eller ej. Appen använder bara ett API och bryr sig inte om det är open source eller kostar pengar. Det är en så låg summa att det bör i princip ses som donationware...dock ej optional :)
    -Jag har funderat på en begränsad gratisversion, men ser inte riktigt hur jag ska kunna begränsa appen utan att förlora för mycket funktionalitet. Appen är designad för att vara minimalistisk och funktionell. Möjligtvis att jag kan begränsa den så att den bara klarar av det som min konkurrent klarar av: Visa och rapportera ärenden + några enklare ändringar av ärenden så som assign och ändra status. De funktioner som försvinner är hela projekt-hanteringen och att kunna ändra ärenden i sin helhet. Det låter faktiskt ganska bra... Jag ska ta mig en funderare på det och se hur jag kan implementera det.
     
    Last edited: Sep 4, 2012
  5. evening.beam

    evening.beam Teen Droid Medlem

    Joined:
    Jun 20, 2012
    Messages:
    259
    Likes Received:
    61

    MINA ENHETER

    Sorry du har rätt, formuleringarna från min sida kunde gjorts bättre. Min avsikt var inte att säga att du gör dåliga val, däremot ville jag ventilera mina tankar från mitt perspektiv.

    Nja, det där är en smaksak. Precis som mina tankar är. Det jag ville lyfta fram är att det är ganska få som än så länge har 4.0 eller senare, enligt Googles statistik så är det mindre än 17%:
    http://developer.android.com/about/dashboards/index.html

    Jag tänker så här, att för enskilda appar kan mycket väl finnas skäl att lägga sig på nyare versioner, men för verktyg som hjälper till utvecklingen bör stödet vara så långt bak som möjligt.


    Angående open source, så menade jag inte att du inte har rätt att göra som du vill. Min poäng var att många open source utvecklare lockas av att jobba i en miljö där allt är open source. Om allt fler delar kostar pengar och är slutna så är det många i målgruppen som avstår. Så mitt råd var i all välmening att om man vänder sig till en grupp med open source, så bör man lägga sig på open source. Det finns säkert en målgrupp som är beredd att betala, men jag tror att den är begränsad. Jag hoppas dock för din skull att jag har fel. :)

    Mvh,
    E.B.
     
  6. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    I natt färdigställde jag gratisversionen av MantisDroid som fick det ovanliga namnet: MantisDroid Free ;)
    Länk till Play Store: https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroidfree

    I gratisversionen har jag plockat bort följande funktioner:
    -Ändra issues, dvs. edit, assign to och update status
    -Hela projekthanteringen

    Eventuellt kanske jag slår på assign to och/eller update status senare. Nu försvann de automatiskt eftersom de hänger ihop med rättigheten att ändra isssues.

    Det tog några timmar att ordna till 2 olika versioner och här är det dokumenterat:
    https://swedroid.se/forum/showthread.php?t=83059
    Lite strul här och där, men ganska straight forward.
     
  7. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    En reflektion kring betal- kontra gratisapp efter dagens krönika om gratismentaliteten:
    https://swedroid.se/gratismentaliteten-kring-android/

    När jag utvecklade betalversionen så tyckte jag inte att det behövs någon gratisversion eftersom man kan ju köpa appen och sedan göra refund om man inte tycker om den. Tyvärr är refund-tiden på 15 minuter alldeles för kort. Det är nästan omöjligt att hinna bilda sig en ordentlig uppfattning om en app är bra eller inte på så kort tid.
    Vidare finns det mängder med användare som inte lagt in sina kreditkort än och helt enkelt inte kan köpa några appar.

    Om det däremot finns en gratisversion med begränsad funktionalitet eller reklam så kan man ta hem den utan problem och se om appen är vettig. När man känner sig trygg så kan man uppgradera till den fulla versionen eller köpa bort reklamen.
    Jag håller med krönikören om att reklam inte är så bra väg att gå. Bättre är att erbjuda en bra gratis app, men begränsa den på sånt sätt att det blir irriterande att inte ha all funktionalitet.

    Jag valde att ta bort redigeringsrättigheterna. Det går alltså alldeles utmärkt att skapa ärenden, men om man råkar skriva något fel eller behöver ändra något i efterhand så går inte det om man inte köpt betalversionen.

    Det är för tidigt att uttala sig om hur det tas emot av användarna, men antalet installationer av gratisappen ligger på ca 2-3 per dag. För betalappen är det ca 0 per dag :-)

    Jag har några saker emot mig:
    1. Begränsningen på minst version Android 4.0. Bör bli bättre med tiden då fler och fler kör minst 4.0.
    2. MantisBT är inte jättestort.
    3. Dåligt stöd för tablets. Kommer lösas inom kort när jag får min Nexus 7 och kan fixa det.
     
    Last edited: Oct 5, 2012
    evening.beam likes this.
  8. evening.beam

    evening.beam Teen Droid Medlem

    Joined:
    Jun 20, 2012
    Messages:
    259
    Likes Received:
    61

    MINA ENHETER

    Det är kul att läsa om dina framsteg och dina tankar. Det är nästan så jag vill köpa appen av dig, fast den inte funkar för mig med begränsningen att det enbart fungerar på nyare Android versioner.

    Det är också med nöje jag läser dina findings och idéer i andra trådar, t.ex. om kodkryptering.

    Att tipsa om konkurrenter är lovvärt, men jag tror inte man vinner något på det i långa loppet.
     
    e7andy likes this.
  9. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Ok, jag raderade länken till konkurrenten. Den appen ligger långt efter min app, men det är ju jättesvårt att lyfta den till min apps nivå. Det beror iofs på hur han designat den och ändringar kanske kräver stora omskrivningar.
    Utvecklingen av den appen verkar ha avstannat en del. Jag gissar att den behöver en rejäl omskrivning snart för att hänga med.

    Jag har även börjat kika på en iOS-version. Konkurrensen där verkar inte särskilt tuff även om det fanns några fler appar tillgängliga.
     
  10. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Jag har fått en felrapport på min app. Inte en error-report med trace:ar utan som en kommentar i Play Store med en 3:a i betyg.
    Det är tydligen så att appen orsakar problem med Touchwiz på SGS3. Jag testade nyss hos en kollega som har SGS3 och så fort man installerat min app så börjar Touchwiz att krascha.
    Man behöver inte ens öppna appen innan Touchwiz börjar krångla.

    Det enda jag kan tänka mig som orsakar såna problem innan man ens har startat appen är det intent-filter jag lagt på en aktivitet för att lyssna på QR-koder och på så sätt logga in i appen.

    De 2 filter jag har är:
    HTML:
            <activity
                android:name="se.nextsource.android.mantisdroid.LoginActivity"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:windowSoftInputMode="stateUnchanged" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity
                android:name="se.nextsource.android.mantisdroid.UrlLoginActivity"
                android:label="@string/app_name"
                android:screenOrientation="portrait"
                android:windowSoftInputMode="stateUnchanged" >
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
    
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.BROWSABLE" />
    
                    <data android:scheme="mantisdroid" />
                </intent-filter>
            </activity>
    
    Känner någon till strul med Touchwiz som kan orsakas av ovanstående eller något annat?
     
  11. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Det hjälpte inte att ta bort intent-filtret för UrlLoginActivity. Touchwiz kraschar så fort appen är installerad.

    Ett annat problem är att app-ikonen inte heller visas på SGS3:an. Varken i launchern eller i actionbaren. Istället visas default-ikonen för Android-appar på båda ställena.
    Det kanske kan ge några tips om vad som går fel.

    Hela min manifest-fil:
    Register eller för att visa innehållet!

    Alla problem uppstår även i gratisversionen så det går alldeles utmärkt att testa utan kostnad:
    MantisDroid Free

    Edit:
    Ikonproblemet kanske är något sånt här:
    http://stackoverflow.com/questions/11430632/missing-application-launcher-after-deployment
    Jag har dock följt instruktionerna för olika storlekar på ikonerna och har en ikon av varje i storlekarna 96, 72, 48 och 36...

    Edit2:
    Se här för lösning på problemet:
    https://swedroid.se/forum/showthread.php?t=83732
     
    Last edited: Oct 10, 2012
  12. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Dags att fira!
    10 nedladdningar av fullversionen.
    Över 100 nedladdningar av gratisversionen.

    Mer exakt data: 10 fullversioner nedladdade och 11 aktiva. Hur det blir fler aktiva än nedladdade måste bero på att jag själv har 2 installationer som inte laddats ner genom Play Store. Då är det alltså egentligen 9 aktiva. Jag har haft en refund.
    129 gratisversioner nedladdade och 74 aktiva, dvs. 55 har avinstallerat. Gratisversionen kostar ju inte något så det är ju bara att klicka på den och kolla vad det är istället för att läsa sig till vad det är.

    Totalt antal aktiva användare: 83 st.
    Det ger att 11% av alla mina aktiva användare väljer att köra fullversionen.

    Jag har än så länge inte lagt till några revolutionerande nya funktioner. Några nya småsaker har jag fixat och en del småbuggar.

    Några stora funktioner som är planerade är:
    -Landskapsläge och tablet-stöd med fragments side-by-side
    -Uppsnabbning av kommunikationen med server genom färre anrop och mer lagring av data lokalt.

    Antalet användare som har lämnat feedback är väldigt skralt vilket gör det svårt att få reda på om de är nöjda eller missnöjda. Jag tolkar det som att de generellt är ganska nöjda med appen.

    Två användare har kontaktat mig via mail för att lösa problem de haft:
    -krascher i touchwiz som löstes med nya ikoner. Användaren hade köpt fullversionen och problemet uppstod där.
    -inloggningsproblem som berodde på ett fel i MantisBT-installationen (nusoap och PHP5.4 fungerar inte så bra ihop). Löstes genom att kommentera bort en kodrad i filen nusoap.php på servern. En alternativ lösning var att nedgradera till PHP5.3. Användaren köpte sedan fullversionen efter att ha testat med gratisversionen.
     
    evening.beam likes this.
  13. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    I förra veckan släppte jag version 2.0 av MantisDroid med landskapsläge som den nya stora funktionen.

    Anledningen till att jag gick upp en hel major version är att implementationen av landskapsläget krävde stora förändringar av alla aktiviteter.

    Det stora problemet med att hantera vridningar är att aktiviteterna återskapas och alla referenser till aktiviteterna blir då felaktiga.
    För att hantera det så har jag flyttat det mesta av koden till Fragments. Referenser till aktiviteten som fragmentet ligger i fås då genom anropet getActivity(). Det gör att man alltid får aktuell aktivitet istället för den aktivitet som försvann vid vridningen.


    Test som många utvecklare verkar ha missat:
    Gå in i Settings->Developer options. Klicka i "Don't keep activities". Det kommer göra att aktiviteterna dör direkt när de inte längre visas.
    Gå fram och tillbaks mellan aktiviteterna i din app och kontrollera att den inte kraschar.

    Testet kontrollerar hur appen uppför sig på en hårdvara med mycket begränsat minne, men även hur appen uppför sig när man hoppar fram och tillbaks mellan andra appar eller låter appen ligga i bakgrunden under lång tid.

    Jag glömde att jag hade aktiverat det där valet och helt plötsligt började jättemånga appar krascha som aldrig kraschat innan. Utvecklarna har uppenbarligen inte testat sina appar särskilt väl.
     
  14. evening.beam

    evening.beam Teen Droid Medlem

    Joined:
    Jun 20, 2012
    Messages:
    259
    Likes Received:
    61

    MINA ENHETER

    Tack för tipset!