Android 6 Marshmallow

Nyt se tupsahti. Virallisesti tarjolla parin viikon sisään OTA päivityksinä, mutta esim. Nexus 7 laitteille jo saatavana. Puhe on siis Android-päivityksestä Isolla versionumerolla 6, Marshmallow eli vaahtokarkkia tällä kertaa.

Android 6 settings

Mitä uutta? Omaan silmään ei mitään jäätävän isoa. Kehitys kehittyy kuitenkin. Luvassa on esim. parempaa muistinhallintaa ja monitorointia, erilainen launcher (vertikaalinen, hakutoiminnolla, valunut jo aiemmin kännyköihin),

Android 6 muistinhallintaaAndroid 6 ja se pääsiäismuna

Android 6 asetukset Android 6 ja maksa napauttamalla

Lisää juoruja esim. https://www.androidpit.com/android-m-release-date-news-features-name

Google Polymer – Web Components

Tutkaan on osunut hiljattain Googlen Polymer-projekti. Projekti on vasta varhais-asteella, ei edes beta-tasolla, mutta omaan makuun varsin lupaava. Sen ohella että se on cool ja näyttää hyvältä, ja vastaa visuaalisesti omaa makua (tilankäyttö, yksinkertaisuus, animaatiot) – se tarjoaa myös puhtia ja ammattimaisuutta uudelleenkäyttöön.

 http://www.polymer-project.org/

Polymerin ideana on laajentaa selaimen tarjoamaa html-tagistöä omilla custom tageilla. Tarjolla on jo reipas määrä komponentteja, mutta kun jokainen kehittäjä voi tehdä ja paketoida niitä lisää, hommassa on potentiaalia.Uusista elementeistä syntyy ’Shadow DOM’ – eli Document Object Model mukainen rakenne jota voi tuttuun tapaan käsitellä JavaScriptistä ja viitata CSS:stä – mutta jota voi itse laajentaa tekemällä uusia komponentteja. Tässä esimerkki Polymer Shadow DOM tagista:

<google-map latitude="37.77493" longitude="-122.41942"></google-map>

Tuon takana on tietysti HTML ja JavaScript-koodia. Serveripäässä tässä ei olisi mitään ihmeellistä – mutta tämä toimiikin Polymerin ansiosta suoraan selaimessa.

Tässä esimerkki omasta custom elementistä:

<!-- Import polymer library -->
<link rel="import" href="../bower_components/polymer/polymer.html">

<!-- Define hello-world element with Polymer -->
<polymer-element name="my-element" noscript>
  <template>
    <span>Hello from <b>my-element</b>. This is my Shadow DOM.</span>
  </template>
</polymer-element>

<!-- (re)Use your element -->
<my-element/>

Lisäksi tähän liittyy Android Material Design – Polymer alustalle on määritetty jo komponenttipaketti nimellä Paper, joka esittelee näitä Material Design periaatteita. Sieltä löytyy paperisivun tapoin käyttäytyviä leiskoja, helppoja varjostus ja syvyysefektejä, animaatioita Hero-elementillä, ja ripple-efektejä joilla demonstroidaan selkeästi mitä voi klikata/koskettaa ja mitä ei.

Näyttäisi siltä että AngularJS versioon 2 on tulossa myös Polymer/Web Components komponenttimalliksi. Silti ei ehkä kannata henkeään pidätellä odotettaessa; Näyttää että Angular v2 tulee sisältämään suunnilleen kaiken mitä ihmiskunta on keksinyt joten on hyvin todennäköistä että se ei valmistu/toimi koskaan. Sinällään Polymer ja Angular toimivat jo nyt hyvin yhteen, mutta aina on nikottelua, esim. karma-testit PhantomJS:llä eivät pelaa Polymerin kanssa – phantomista kun puuttuu osia joita Polymer suorastaan vaatii.

Polymerin roolina on tuoda Polyfill tuki jo ennen kuin se virallisesti selaimista sisäänrakennettuina löytyisi. Polyfill taas luo perustan laajennettavuudelle. Mutta ihan joka selaimeen ei tukea ole tarjolla tälläkään hetkellä. IE-puolella lähdetään versiosta 10 liikkeelle.

Polymer ei keksi koko pyörää uudestaan – nykyisellään se on vain laajennettavien UI-komponenttien framework: Se ei tuo esim. mitään MVC mallia eikä sisällä esim. useita Angular-piirteitä. Polymer on yhden tempun poni, mutta se tekee sen todella hyvin.

Mutta hieno ja varsin lupaava palikka tämäkin! Sormet syyhyäisivät päästä soveltamaan isosti..

Linkkejä:

http://en.wikipedia.org/wiki/Polyfill

http://www.polymer-project.org/resources/compatibility.html

http://googlewebcomponents.github.io/google-map/components/google-map/#google-map

http://www.polymer-project.org/docs/elements/paper-elements.html

Google Play ja 16000 biisiä

Jep, tämä päivitys ei koske mitään omia ohjelmointiprojekteja tai työasioita vaan ihan vapaa-aikaa ja sen laatua. Olen aina pitänyt erityisesti musiikista, se vei aikanaan dj-hommiinkin ennen nykyistä uraa. Sen seurauksena on kertynyt mittava arkisto kaikentyylistä musiikkia, aikanaan digitoin ihan jokaisen cd-levynikin ja jopa vinyylit että niitä on helpompi käsitellä.

Nyt Google Play avasi Suomenkin nurkilla musiikkipalvelunsa jonka seurauksena latailin tietysti kaikki biisini palveluun. Nyt pystyn sieltä striimaamaan musiikkia ja soittolistoja fiiliksen mukaan missä vain missä on verkkoyhteys, mihin vain laitteeseen joka juttelee Playn kanssa.  Ja niitähän piisaa.

Kun tämän yhdistää uuden auton audiojärjestelmään, Ford Synciin, joka kytkee bluetoothilla iloisesti taskussakin olevan kännykän ohjausratin ohjaimiin, on autolla mukavampaa ajella kuin koskaan. Sync on yllättävän hyvä kapistus ja juttelee Samsung S3 Android kännykän kanssa kivuttomasti. Myönnettäköön että olisi hienoa kun biisien navigointi olisi monipuolisempi, mutta toimii sentään eteen, taakse ja volyymi hienosti ja langattomasti, ja jos joku sattuu soittamaan, autoon integroitu hands free astuu peliin ja musa häviää taustalle.

Ei ollut automainos, eikä Googlen mainos, mutta tämän myötä ajelusta on tullut huomattavasti hauskempaa kuin cd-levyrumban aikaan. Tykkään nykyteknologiasta joka toimii ja antaa jotain uutta. Tämä pistää myös miettimään yhtä asiaa…

Mitä kaikkea helkkarin scheissea on tullut vuosien saatossa kerättyä musakokoelmaan 😉

Screenshot 2013-10-23 19.55.41

Google uudet vimpaimet

No niin, eli Google I/O 2012 tuli, oli ja meni. En ollut kuuntelemassa mutta ehkä ensi vuonna pitäisi. Kuten odotettiinkin siellä julkistettiin nyt uutta Googlen myymää Nexus hardwarea runsain mitoin. Ei ollut yllättävää että sieltä tuli tabletti ulos, mutta oli yllättävää millainen tabletti ja mitä kaikkea muuta.

Itselle napsahti heti Nexus 7 tabletti tilaukseen. Kun laitteen ovh on 200$, siinä on neljä prosessoriydintä, lähestulkoon retina displayn tiheydellä näyttö, nvidia gpu jossa ytimiä enemmän kuin laki sallii, vääntövoimaa siis riittää. Itselleni sekä applen että android alustan tableteista on tullut päivittäisiä työkaluja, mutta ipad on toistaiseksi pysynyt enemmän kädessä. Uskon että tämä tabletti voi tilanteen muuttaa, se on keveämpi ja kooltaankin erilainen. Katsotaan miten toimii jahka saan sen hyppysiini kuukauden päästä. Se on tietysti heti varustettu uusimmalla Android 4.1 Jelly Beans versiolla josta myös lisää myöhemmin.

Pikkasen mielikuvituksellisempi päivitys olikin sitten Nexus Q, olohuoneen multimedia-pallo. Mitenkähän sitä luonnehtisi.. Kyseessä on kuula jonka yläosa toimii volyyminsäätönä. Sen voi kytkeä kaiuttimiin ja äänilähteisiin. Se pyörittää android käyttöjärjestelmää ja sillä voi streamata musiikkia monesta eri lähteestä kytkettyihin kaiuttimiin. Niitä voi hankkia monta ja verkottaa ne yhteen. Sillä voi myös streamata videosisältöä . Vaikuttaisi aika hauskalta kuulalta, ja plussaa mielikuvituksesta. Haluan myös tämän. 😉

Sitten tietysti tuo Google Glass projekti, jota odotan innolla ja mielenkiinnolla. Olen aina messunnut lempiaiheestani eli siitä miten me kannamme nykyään superkoneita taskussamme. Mobiililaitteissa on vääntövoimaa uskomattomasti, ja ne kehittyvät edelleen. Rajoittavia tekijöitä ovat (akunkeston lisäksi mikä on toinen tarina) näytön koko ja vaatimattomat tiedonsyöttö-ominaisuudet, yhä edelleen. Jos käyttöliittymä voikin olla muu kuin näppäimistö, ja jos tiedon näyttäminen ei vaadi näyttöä, voidaan laite puristaa pieneen kokoon vaikka osaksi vaatetusta. Tai esimerkiksi silmälaseiksi. Älylasit jotka tottelevat puheohjausta ja sisältävät android käyttöjärjestelmän johon voi tehdä applikaatioita? Wow!

Anyway, tässä ei varmasti ollut uutisia Googlen liikkeitä seuranneille, mutta viimeaikaisten tapahtumien jälkeen – rökäletappio Oraclesta patenttikiistassa, Motorolan osto, ja nyt nämä julkistukset.. Seuraan mielenkiinnolla syyskautta. Pitäisiköhän meille tehdä kolmas Android jatkokurssi.. 😉

Lähdelinkkejä:

http://www.google.com/nexus/#/q

http://www.google.com/nexus/#/7

https://plus.google.com/111626127367496192147/posts

Oracle vs Google

No niin, nyt tuli jenkkien suunnalta jonkunmoinen päätös Oracle vs Google oikeudenkäynnille joka koski Java käyttöä Android alustalla ilman lisenssiä.

Valamiehistön pohdinnan (30min) jälkeen päätös oli että Google ei rikkonut Oracle patentteja vastaan. Pohdintaan jäi vielä voiko rajapintoja patentoida, mutta silti mielenkiintoinen voitto. Patenttioikeudenkäynnit ovat aina testejä, joilla linjataan jatko. Tässä tapauksessa Googlen  häviö olisi pistänyt vaakalaudalle sen pysyykö Android laitteissa ohjelmointikielenä Java. Googlen voitto taas antaa kummasta lisää buustia mobiililaitteisiin, etenkin kun Google-Motorola kauppa meni läpi ja kentällä liikkuu huhuja tulevista Google-laitteista softan ja raudan yhdistyessä.

Mielenkiintoisinta tässä että mielestäni silti oikeudenkäynnissä Oraclella oli pointtinsa – Java oli ja on käytössä kielenä ja kirjastoina laitteissa ilman lisensointia, Google olisi voinut valita kaupalliseen käyttöön lisensoida alustan tai kehittää täysin erillisen ja uuden kielen ja alustan, mutta sensijaan ratsastaa Javan maineella ja tunnettuvuudella, ja muunteli siitä itselleen sopivan. Toisaalta ilman Android imua Java kieli voisi olla huomattavasti synkeämmässä jamassa kuin mitä se on – Android on piristysruiske sekä mobiililaitteille että Java-ekosysteemille kokonaisuutena.

Kiintoisa huomio: Jos rajapinnat voi patentoida yhdysvalloissa, mutta ei Euroopassa, arvatkaapa minne kaikki startup-yritykset siirtyvät..

Joka tapauksessa, maailma tarvitsee selkeästi enemmän koodaavia lakimiehiä ja tuomareita tulevaisuudessa. 😉

Androidia ja koodaava tuomari

No niin, nyt on Android Ohjelmointi II pidetty, ja käytiin läpi aikalailla hauskoja ja hyödyllisiä Android rajapintoja. Kurssilaiset kävelivät ympäri luokkaa paikannus-rajapintoja testaillessaan ja testailu jatkoi kurssin jälkeen. OpenGL:llä väännettiin kosketukseen reagoivaa taustaväriä. Kolme päivää on aika piukka aikataulu käydä ohjelmointikurssia läpi, mutta siinä ehtii saada ensi askelen edistyneisiin rajapintoihin ja lisää varmuutta perusvääntöön.

 

Taisin jo aiemminkin bloggailla siitä, miten Google-Oracle Android-oikeudenkäynnissä tuomari Alsup käväisi java-ohjelmoinnin perusteet kurssilla ymmärtääkseen mitä oikeussalissa puhutaan. Nyt homma on mennyt eteenpäin: Viimeisimmän tiedon mukaan tuomari Alsup on koodaillut pikkuhiljaa Javaa vapaa-ajallaankin, ja nauraa nyt väitteille patentoidusta koodista. Kohteena oli 9 riviä rangeCheck() funktion koodia, mitä kiista nykyisellään koskee, ja tuomarin mukaan hän on koodaillut vastaavat pätkät lukuisia kertoja ja koodi on suorastaan triviaalia. Way to go tuomari!

En sinällään ota kantaa tuohon oikeudenkäyntiin muuten, se on oivallinen soppa kaikin tavoin, mutta miten ikinä siinä käykin, vaikutukset ovat pitkäkestoiset alalla. Mielestäni kuitenkin hienoa että tuomari vaivautuu perehtymään kohteena olevaan asiaan henkilökohtaisesti, ja olisiko myös aika alkaa opettamaan kouluissa ihan jokaiselle Javaa kolmantena kotimaisena kielenä? 😉

Tästäpä voi lukea lisää esim. http://developers.slashdot.org/story/12/05/16/1612228/judge-to-oracle-a-high-schooler-could-write-rangecheck?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Slashdot%2Fslashdot+%28Slashdot%29

 

Vuosi lähestyy loppuaan – Scalaa ja App Engineä ;)

Jep, joululomailut ovat vähentäneet blogikirjailua mutta vielä ehtii yhden artikkelin luikkaamaan sisään ennen kuin vuosi ja kujeet vaihtuvat. Olkoonkin sisällöltään vähän kevyempää tällä kertaa – ei esim. koodi tai konfiguraatiopätkiä tarjolla 😉 Vuoden vaihtumisen kunniaksi uusi ulkoasu kehiin.

Jouduin valitettavasti luopumaan suunnitelmastani toteuttaa google app engine sovellukseen käyttöliittymä Vaadin frameworkillä. Tähän päätökseen vaikutti useampikin asia, mutta se mitä en pystynyt kiertämään oli se että joka vaiheessa oli vastaan tapeltavaa ja säädettävää, ja työaika meni virittelyyn sensijaan että se olisi mennyt ratkaisun tekemiseen. Tämä on aina omassa mielessäni se killswitch jolloin on aika vaihtaa tekniikkaa. Vaadin on itsessään loistava framework, mutta se abstraktoi liiankin korkealle tasolle, jolloin gae:n asettamien vasteaika ja kirjastorajoitusten kanssa tulee vastaan paljon haasteita. Lisäksi tietysti mehukkaimmat komponentit ovat AGPL lisenssin takana josta en järin itse pidä – se kun pakottaa julkaisemaan KOKO oma sovellus lähdekoodina, ei pelkästään muutoksia komponentin koodiin. Tästä pääsee tietysti eroon lisensoimalla komponentin mutta se vaatii tiettyä sitoutumista ratkaisuun. Lopulta ongelmana on myös debuggaus; Testaus pilvessä ei anna aina kovin hyviä virhetietoja ja statistiikkaa – testaus omassa koneessa ei taas toimi samoin kuin pilvessä. Tämä on tietysti vastassa joka frameworkillä mutta kun puolet asioista tapahtuu javascriptin puolella on asiassa vielä lisähaasteita.

Sinnikkäämmät sielut ovat saaneet homman toimimaan, eli tässä pari viitettä gae + vaadin asioihin:

http://vaadin.com/wiki/-/wiki/Main/Google%20AppEngine%20HOWTO

http://www.streamhead.com/maven-spring-vaadin-appengine/

http://devrimyasar.com/blog/2009/11/22/finally-there-vaadin-godsend-on-gwt-google-app-engine/

Eli vielä kerran, Vaadin on hieno ellei peräti loistava framework, ja paljon käytetty, mutta pilvi + vaadin on toistaiseksi early adopter aikaa, jossa joutuu maksamaan aika kovan hinnan etenemisestään. Se on huimasti parempi vaihtoehto kuin paljas Google Web Toolkit, koska suurin osa prosessoinnista ja tilanhallinnasta tapahtuu palvelinpäässä (tästä on myös tietoturvahyötyä GWT:hen verrattuna). Kokonaisuus tulee varmasti tulevaisuudessa paranemaan vielä ennestään, mutta itselleni valikoitui käyttöliittymään RichFaces toistaiseksi, se kun on pilvivalmis uusimmassa 4.0 releasessaan. Näin pääsen hyödyntämään rikkaita JSF kontrolleja ja voin hallita miten paljon AJAX:ia haluan upotella mukaan. So far so good..

Ja sitten, sain valmiiksi koulutusmateriaalin Scala ohjelmoinnista, ja tutustuessa tähän kieleen täytyy sanoa että se on kuin kevättuulen virkistävä hengähdys. Javan vanhuus ja muuttumattomuus näkyy ja useat parannukset ovat kuin laastarilappuja alustan päällä. Se on edelleen kova alusta jolla voi tehdä melkein mitä vain, mutta aika ajoin koodaajalle tekee hyvää tuulettaa vähän ajatuksiaan ja oppia jotain uutta, ja Scala on kyllä miellyttävää. Monet asiat jotka vaativat paljon työtä Javassa ovat salamannopeita Scalassa, ja jokainen koodaaja voi itse päättää haluaako kirjoittaa Scalaa oliomaisesti, vai funktionaalisesti, ja missä suhteissa.

On toki vielä useita alueita joissa Scalassa on keskeneräisiä ratkaisuja ja turhankin monta vaihtoehtoa, mutta suuri rikkaus on myös hypätä saumattomasti Java kirjastoihin aina kun sille on tarve – ja enemmän ja enemmän asioita voi jo nykyisin tehdä scalamaisesti, kuten esim. tiedostojen ja url resurssien käsittelyn, tietokannankäsittelyn, ja web kerrokset. Ja mikä mukavinta, scalaa voi ajaa missä vain java alustalla – esim. pilvessä 😉

Joka tapauksessa, kurssi on näkyvillä http://www.tieturi.fi/avoimet-kurssit/kurssi.html?cat_id=117445444&course_id=83926464 – ja palautetta kuulen mieluusti. Jos homma kiinnostaa niin jatko-osia tulee perässä!

Joka tapauksessa, tämä on viimeinen blogi tälle vuodelle. Parhaimmat uudenvuoden toivotukset kaikille tälle sivuille osuville!