rom sony experia for A7R
rich: welcome to the firstandroid developer office hours of the new year. happy new year,[foreign language], and any other, or maybe dutch. johan, can you jump in with adutch happy new year for us? johan: [speaking dutch] rich: [dutch], toyou too as well. so happy new android yearkicked off by ces. as you may notice, we're joinedby chris banes in the
android studio today. chris: ta-da. rich: and that's because he'sthe newest member of the android developer relationsteam based out of london. welcome, chris. and we've got sparky with us. hey, sparky. sparky: i'm here, yes. i'm here largely to acknowledgemy departure,
since i am moving out of androiddeveloper relations and into internalgoogle projects. i'll be doing much the samething as i did before, but for inward facing stuff ratherthan external. rich: i hope that worksout very well. i'm sure we'll still see youin the android scene and around, sparky. and, of course, nickbutcher as well. hey, nick.
nick: hi, happy new year. rich: so it's been kicked offthe new year with ces. i guess we've seen lots and lotsof new android stories. have you got any favoritesfrom over there in the london office? chris: it seems to be the bigces of big, big phones, so lots of 1080p, 5 inch,6 inch devices. nick: can we call it a phoneif it's 6 inches? chris: tablet, maybe?
nick: oh, i hate that word. chris: yeah, it's a bad word. sparky: vizio, is thatwho made that? chris: vizio, zed te, xperia,sony, lenovo, they're all up there. nick: it seemed like 1080pis the new table stakes resolution. when you read a review of thephone, it says 720p screen. you go, oh.
rich: i just want 1080p at 4.7inches, i really don't want to stretch to that 5 inches. chris: it's weird, becausepreviously, with the 720p, you had that tablet and thenphones caught up. whereas now, it's phones havegone 1080p, but tablets haven't quite got there yet. obviously, you've got the nexus10, but most tablets are still at the 1280. rich: yeah, funnily enough i sawone this morning on "the
verge" that was 1,920by 1,200, so gone past 1080p, a 7 inch. so maybe that's what the 7inches are going to set. rather than 10 inches,it'll be 1080p. sparky: i think 2,560 is whereit's at for tablets now. what can i say? i'm spoiled. nick: that's your new year'sresolution, get it? rich: no, that's a good point.
with the tegra 4, the quad-corea15, and the new snapdragons, the s800, s600, andall those chips coming out in the next few months, we coulddefinitely be seeing those high resolutions gettingpushed around. yossi: hi, guys. sparky: that said, i do haveto acknowledge that santa claus was very, verybusy hauling around nexus 7's in my family. rich: mine too.
mine too. definitely, nexus 7, a populargift this year. nick: i think one of mystand-outs from ces, i've seen, is vizio and some othermanufacturers seem to be backing off their oemcustomizations and recognizing that stock android has got to apoint where it's a fantastic experience. and you don't need to putlayers on top of it. it just slows down upgradecycles and so forth.
so, for me, i think that'sa wonderful sign. i think we're reallyrounding a corner. rich: yeah, it's excellentnews, isn't it? i was hoping to seemore of that. and goodbye, goodbyeto cupcake. the android dashboard updatedlast week and cupcake has fallen off the bottom. i assume that meansit's less than half of 0.1% or something.
sorry? nick: and 40% of usersare on ice cream sandwich and above, right? rich: yeah, over 40%[inaudible]. and most of that is icecream sandwich. sparky: given that cupcake hadsome noteworthy security problems, and even the g1 wasupgradable to donut, i never wanted anyone to supportcupcake anyhow. rich: ok, just havingbrowser issues.
nick: and unfortunately, matt'snot here because he's at ces, lucky guy. so what, he's probablyasleep right now. but there's a few newannouncements on the gtv as well. so the asus device anda new high sense device, i think, right? pretty exciting. chris: the qube looksgood, the asus one
looks very nice device. very home-orientated. that's good. your big thing is nvidia'sproject shield, a new game controller device. nick: yeah, of course,anyone excited? yossi: that was reallycool to see. nick: he said it's going to get24 hours of hd playback, video playback.
that's got to be a good signfor the tegra 4, i hope. i think, didn't they say it's anew 28 nanometer processor? chris: also, it'sin a controller. you can keep a biggerbattery anyway. nick: yeah, i guess so. chris: so that might be why. it's also not a big screen. it's about 4 inches. yossi: yeah, it's still a bigscreen for a controller you
just put in your hands. chris: oh yeah, definitely. sparky: but you know they'rejust going to use that increased efficiency just togive you a smaller battery and chipping devices. nick: yeah, probably. it's a good thing, right? i guess they're all having the4-plus-1 cores now as well, aren't they?
so they're having the low crowdcore, which tips over when you're not really taxing itand then spins up the high performance one, so i think iwould like to see more focus on battery life this year. rich: absolutely. what else was it? it wasn't just the-- i can't remember whati was going to say. just skip that one.
nick: that's hardware, right? the ces, so we're on the androiddeveloper on the software side of things. we had an exciting blog postyesterday talking about some new authentication stepsthat you can do. rich: yeah, you can use gms coreto authenticate against your own back-end serversnow, endpoints, things that like that. i haven't delved intoit myself yet.
nick: i'm pretty excitedabout it. i think it relieves a need tohandle things like usernames and passwords in your app, andstill be sure of who you're talking to. so i think this is really,really, awesome. chris: yeah, it's a niceway of doing it. because having to get usersto register and login, it disrupts the user flow. so anything to make our appsas seamless as possible is
always a good thing. yossi: is there a demo appfor that to see the flow and stuff like that? or is it just a blog post? chris: it's a blog post, but itgoes through the whole flow using the googleplay services. yossi: oh, i will lookit up later. chris: yeah, it's on google+and on the blog site. nick: yeah, top of theblog right now.
rich: ok, welcome guiseppeas well, from italy. guiseppe: thank you very much. happy new year to everybody. rich: happy new year. and lucas, as well. hey there. happy new year, lucas. ok, does anyone in the hangouthave a question before we jump into the 14 questionswe have lined up in
the moderators today? i wonder if andrew kellyput all of them in. sparky: not all, butmaybe a third. rich: ok. johan: i posed a questionin the moderator, guys. i've ran into an issue wheremy app is causing a force close on a sony xperia device. and it turns out the sony xperiaframework is referring to a resource id, which i havealso defined in my app.
so it looks like it's, i don'tknow, using an app resource id or something. have you encountered such thingswhere device failures-- rich: [inaudible]. johan: yeah. rich: no, i mean, it's a verylarge pool of resource id's. and the chances of them clashingare very small. but i guess it is possiblethat they could clash. i mean, they are generated atrandom in the resources.java
file, right? johan: yeah, but in this case,it's for setting the font scroll thump drawable, whichapparently sony is using its own skin or theme or whatever. but still, i've read a postby dianne hackborn, which states the-- what's it called-- the 7f, thefirst two x numbers in the resource identifierare for apps only. so is it then a block by sonyusing, i don't know,
hard-coded resourceidentifiers? or how did it get generatedgetting into their framework? has anybody encounteredthat with other oses? rich: i haven't no. but if sony are building on topof the android framework and putting their own apps in,maybe they're not using the reserved resource idsfor their own apps. johan: oh, ok, that could be. yossi: i think you cando a workaround by
using public ids xmls. and generate your own ids andset the ids and the xml to be sequentially added. and i think that should do aworkaround on all devices. because on the publicxml, you can define ids you want to expose. and if you want to exposethem, then the system generates different linkageor something, i'm not sure where it is.
i just read about ita few years ago. nick: so i think i saw ablog post about this. weren't you saying it was onlyhappening when they introduced actionbar sherlock into it? johan: yeah, but i don'tknow if that's the-- nick: well, that makes me thinkit's something to do with theme, perhaps. because if you're using thesherlock themes, then they may be trying to theme someof the attributes.
and if they're just trying toalias them to underlying resources and sony's changedsomething, then-- johan: yeah, but there's a blogpost about that as well. and then you have to movethat specific attribute. but it's still attributedto a values dash v11 resource folder. and then i think you're out ofthe loop, not clashing those on older android os devices. so i'm not sure if it'sactionbar sherlock specific.
because in my view, it's a sonyframework resource, it's apps list view. so it could be intheir framework. or it could be in their app,like rich was saying, in one of their apps, i don't know. so yeah, it pops up withactionbar sherlock, that's definitely true, nick. but i'm not sure if thatis the real issue here. rich: well, it soundsvery bad.
if it's a resource that youcan use inside your application that they'reproviding that's terrible for them to use a 7f idfor it, isn't it? [inaudible] will clash, right? maybe just email methe details of it. i know that dianne knowsabout it now, as well. and we'll see if we can sendit off to our sony partner manager and see what happens. johan: ok, will do.
rich: do you know whichdevice it was on? johan: yup. rich: is it a new firmwareor old firmware? johan: old firmware, 2.3.4. rich: ok, but it's alreadybeen reported and fixed. johan: yeah, that's whati'm afraid of. but then you still have tohave workarounds for this particular device-- rich: what a crazy case.
johan: affecting allsony devices. ok, that should-- ok, curious. ok, thanks guys. rich: but it would good to findout the details because it could affect everyone. are nick and chris live? nick: we're back. we dropped out, butwe're back.
rich: ok, any other-- chris: [inaudible] muted? oops. rich: any other questionsfrom the hangout? or should we jump intothis moderator? sounds like we're going tojump into the moderator. sparky: you already did, becausejohan's question was one of our moderatorquestions. rich: absolutely, it's alwaysnice when people who are going
to ask questions in hangoutput them in the moderator first, though, so we get achance to pre-read them, not that i did. it looks like you've alreadyhad a look through some of these, sparky. do you want to jump on one? sparky: oh, i could. i didn't have much to sayabout this first one. jamie says, "when using amulti-autotext view, i process
the list when user selectsan item by clicking. but i also want to detect newitems added manually, ones not on the list, and do the sameprocess, as it's one words when user press space orpunctuation, et cetera." he goes on to say, "i usedkeylistener, but this only works with android ime optionsset to something, which is annoying, as in landscape onsmaller devices, it fills the screen, gives a button. i either want to stop itfilling the screen or
not have it be set. am i doing it completelywrong?" i don't have a lot to contributeon that one. i don't have experience withthat particular control. any of you guys work withmulti-autotext view before? chris: i have, but i'm tryingto work out what he's trying to do. i might skip that one anddo it after i have another read through.
sparky: well, we can always comeback to that one later. should we-- rich: i mean, the ime alwaysfills the screen landscape in landscape mode, right? that's just the defaultbehavior? chris: you can have variety,though, from what i remember. rich: you can indeed havevariety and use your own custom one. sparky: well, here'san easy one.
shivano from egypt says, "arethere any news regarding augmented reality apis forandroid camera?" i know of some third party augmentedreality apis. most of the augmented realitystacks have one, like junaio's got one, and i think layar'sgot one, and wikitude. but i don't know of any actuallyfrom android itself. nick: that's definitely newin the developer space. i wouldn't expect to seesds, i know that. sparky: [inaudible]
at some point in the future. i mean, taking off my "knowsanything" hat and putting on my "wild speculation" hat, i'mthinking that some sort ar will probably have to go withgoogle glass, otherwise what good would it be for? rich: maybe, but maybe theywould also use to use ar toolkit or something. we could divert the entireandroid engineering's team resources to building an arlibrary if we wanted.
but there's some excellent onesout there already that many apps and games are beingbuilt on top of and professional software. just have a search for it, hitup ar toolkit or something. it's a complex area tobe delving into. sparky: of course, there's manydifferent kinds of ar, too, right? i mean, there's realworld stuff overlaid on top of video.
but then there's also actuallylooking at codes and specific recognized items. so there's the geo-stuff, andthen there's also the image processing stuff. chris: andrew kelly's put a goodquestion in saying, "with fragments, what's thecorrect way to move from one to another? as in, one to two to threeto four for a data entry? and then the fourth fragment, orpressing back?" you want to
go back to the start rather thangoing back through the fragments, so there's awizard touch thing. the best way to do that, i'dsay, is each time you add a fragment, add a backstack id. so usually you add an id, andso it can be any string you want, really. and then, when the userdoes press back-- it's probably betterto have a button, actually, saying finished.
and then when they pressfinish, you can call-- what's the call? nick: yeah, fragment manager,or something. chris: i can't remember. there's a method call whichtakes you back to that particular id, so you removeall the fragments from the backstack and you go backto the original id. you can also do it with the backbutton by not adding add to backstack when youadd a fragment.
sparky: i'm not entirelysure if i agree with that user flow. i think, either you go withthe paradigm that says fragments don't do backstack. say you're reading through youremails, if you have a navigation pane and a detailpane, usually you don't stick those on the backstack. or they do, in which case, maybeyou should go backwards through the sequence of inputdialogues or whatever.
i don't really agree withchanging the behavior just because the user's completedall the input. i would usually interpret theback button, in an input scenario like that, as sayingcancel, forget it all. either meaning, go back andcorrect the previous page, or, i suppose, just wipethe whole mess. i don't know. i'm not really liking changingit just because it's on the last page.
rich: personally, if i was goingto do a wizard flow, i'd use roman's wizard sample. just use that, because he'sput a lot of effort into making a wizard flow that looksnice and works well. and you can go through stage bystage without being able to skip stages and allthat good stuff. so i'd probably just let romando the work and go and grab his wizard flow sample. sparky: plus one for notreinventing the wheel.
nick: yeah, that's atcode.google.com/ p/romannurik-code. yossi: i just wanted to addsomething about what sparky said about the flow for thefragments and don't use the backstack for everything. if we want to show the user atutorial and we want him to go back to the main screen of theapp, then that's the best use case for not using the backstackor overriding the simple behavior for thebackstack for fragments.
sparky: yeah, that does seem tobe the obvious control to use for closing outa tutorial. either that, or maybethe up chevron. nick: i'd want a explicit skipbutton in any tutorial. sparky: yeah, that'sa fair point too. although i'm actually prettyok with using back to just close out a tutorial. i don't feel the need fora skip button there. nick: i feel if it's the firstthing i see when i launch the
app, it feels like back wouldclose the app to me. chris: you don't knowsomething's behind it. yossi: no, but i think the bestuse case is what sparky said, just back from the firstscreen of the tutorial puts you back into the mainscreen of the app. chris: but only if you've showedthe user the main bit of the app first. otherwise they don't know what'sbehind the tutorial. yossi: so the best use case toshow a tutorial then, i'll do
something like, firstscreen the user sees the tutorial screen. and instead of a skip, the homenavigation will get you back to the main screen of theapp from any screen you're in the tutorial. say you have eight screens forthe tutorial, every time you press on the home navigation yougo back to the home screen for the app. nick: yeah, i'm fine with theback button closing the
tutorial and taking youback to the launch screen of the app. i think it should dothat, in fact. but i also would like a skipbutton just because there's no obvious avoidancefor going back. sparky: i could see how maybethis is a case where you want to do different behavior foryour tablet and your phone ui. your phone ui fills the wholescreen, in which case, maybe having a skip button is theobvious thing to do.
but if you have a tablet ui,maybe your tutorial is just a little inset dialogue, in whichcase it's obvious that there's an app behind there,and then that could just dismiss it. nick: that works. chris: sounds good. yossi: that's nice. nick: cool, all right, should wego to the next question in the moderator?
redier-- i guess i'm probably notsaying that right-- is asking if there's anypointers for implementing a chips type ui on pre-icsdevices, and are there any proper libraries available? so the chips ui, i guess, isthe ui we use in gmail and messaging and so forth, sothat, as you enter a recipient's name, and then youpick one from the list, it turns it into a nice littlebox with their name and a
little avatar on them. it's quite a nice little ui toecho that they've understood what you meant. and to that end, i would sayprobably look into the sms application, mms.get, which isopen source so that's going to be probably your best best. he explicitly asked aboutpre-ics, so i'm wondering if there's anything in therethat's dependent on it. i'm not sure.
i'd have to have a lookand see if there's dependencies on ui stuff. anyone know of any other-- chris: can't thinkof anything. nick: there's a nice answeras well if someone's-- oh no, it's himself. he's saying he's startedcreating his own one. but i guess he's wonderingif there's any better sample codes.
but i would take a lookat the mms app. no one else got anyexperience here? chris: it looks like somethingabout track anywhere, because he's using autocomplete textview, which is what you'll more than likely need. nick: that's what i'd do. any other questions livefrom the room? we've got new joiners. ah, there you are.
is that redier? it's your question. hi, welcome. have you had a lookat the mms app? redier: i haven't yet, no. but it works fairly well. it's a bit misty,but it works. you use low cpu spec, low ramspec, the bulk on reference design devices, so it needs tobe as lightweight as possible.
and this one works well. nick: yeah, from yourdescription, it sounds like you're absolutely onthe right track. rich: i just saw one-- sorry-- i just saw a question in themoderator that says that video calendar dot getinstance andgetyear on it, it's returning 2012, if you're on android 4.1.2and 2013 if you're on android 4.2, which is crazy.
obviously i have no idea why. but it should definitely beraised as a bug, if it is true, with repro steps. and more details, are yourunning one on an emulator and one on a device? and maybe the clock is setwrong on one of them. the clock on an emulatormaybe? but it seems very strange. i would have thought we'd haveheard about it if it was
always the case that thecalendar classes in android where returning thewrong year on 4.1. anybody heard anythingabout that before? chris: that is odd. rich: then again, if you toldme that we were missing december last year, i would havelaughed and said, hey. definitely check thebug tracker. this is from etienne. and i might actually go and tryit myself, because that's
just crazy if it's true. nick: he says, bothare on a device. chris: does it? rich: oh yeah, he's commentedon his own thing saying both are on a device. and the clock's set right on thedevice, on both of them? nick: [inaudible]. yossi: maybe a differenttime zone? [laughter]
rich: very close to thenew year when he was doing it, maybe? sparky: etienne, thissounds familiar. i think this is someone we'veheard from before. rich: "day getyear returns avalue that the results are subtracting 1900 from the yearthat contains or begins with the instance in time representedby this date object as interpreted inthe local time zone. this is deprecated fora good reason."
yossi: y2k again? rich: thanks for therapid response. so maybe, actually, this isa known issue and you shouldn't be using-- i mean, it's documentedin java docs, and jdk 6 is java doc. but i can't see thesame documentation in the android docs. yossi: or in jd.
rich: i wonder. weird. yossi: johan needs coffee. chris: some of the values returnat zero index and some are actual values. so month is zero indexed,from what i remember. so it's day, the day ofmonth, and year isn't. rich: anything else frominside the hangout? yossi: yeah, can i sendyou a youtube video
to see for a second? rich: yeah, put it inthe group chat. go for it. is this kittens or somethingor "gangnam style"? yossi: no, i thinkit's a good-- rich: you've got a slidebar orientation sliding in and out. yossi: yeah, the slidingmenus to show that you have swiping--
rich: like a tutorial? yossi: yeah, what doyou think about it? is this good way to persuadeusers to use the sliding menu or use the slide orswipe feature? rich: yeah, i've seen a few ofthem now, actually, which, on first run of the application,they force that slide just to show the user that it's there. maybe our ui designercan comment on that. can you see the video, nick?
nick: yeah, we're justlooking at it now. so you have a little hint? come on, click me. rich: nice that the actionbaris there. and it's all verysmooth, anyway. yossi: first of all,i love the app-- [noise] chris: everyone mute etienne. sparky: oh, we have etiennein the hangout.
did we just talk aboutyour question? etienne: actually,you just did. i don't know if we gota response, though. nick: is it the calendarbug issue? etienne: yeah, it'sthe calendar bug. nick: yeah, we have no idea. we'll have to go and tryand repro it, i guess. etienne: sure. how do i go about that,if i'm filing bug?
nick: actually, you goto b.android.com. and all the stepsare right there. etienne: oh, ok. yeah, i've neverdone it before. nick: yeah, the key is just tohave a simple test case that we can use to replicate it. etienne: ok, i was looking-- because you said check the settime on the nexus s, and i don't know where to seepotentially the date.
and the date's set tothe current date, january 9 of this year. rich: but you're not surewhat the year's set to? etienne: well, i would believeit's set to the current year. but there's nothing tosuggest that it's-- rich: if you go into menu,settings, then date and time. it's worth double-checkingbefore raising the bug. etienne: yeah, date and time. rich: you don't know howmuch i hope this is
going to say 2012. yossi: 1992. etienne: that's strange. i guess my date wasset to 2012. thank you. it could have something to dowith i took the sim card out. and placed it into my nexus4, because i just got it. so that could be the issue. the time isn't syncedup because of the
sim card being removed. nick: [inaudible] has set the right date andmonth, but not the right year. yossi: if you check theautomatic network update time and you log in to wi-fi orsomething, then it goes to the time servers and updatesaccording to the time zone. etienne: yeah, i think i'mtesting on a device that's without a sim card. so it's not reallya real scenario.
so i guess i shouldn'taccount for that. nick: listen, we should goback to yossi's question, because we interrupted. rich: yes, absolutely. nick: so your question wasbasically, is it cool to use some kind of animation to hintat how you interact? yossi: yes. nick: so where do you envisionshowing that? just on first run?
yossi: basically, ontwo occasions. on first run because we'regoing to do a ui change. the example i posted wasspecific for swiping. but i'm talking generally onall the swiping, double tapping, you name it, whatevergesture you want us to do on your app. i'm talking about making asimple two seconds demo of the gesture and showing that to theuser as here you can click on me, here you can scratch me,here you can kick me, i
don't know, whatever. nick: yeah, generally i'm okwith using some kind of animation as an affordance,essentially, to say, this is how you interact with me. i think what you need to be waryof is getting annoying. so showing it every timemight become annoying. i saw some iterations of theyoutube application, for example, when they moved to thesliding draw, similar to this application.
it used to open with that andthen the menu eye would fold in, just hint at it. and we played around withsome iterations of that. and i think it was decided thatit was just unnecessary, that the sliding in menuwas becoming a well-known pattern now. and that it was an unnecessaryroad bump to go over in order to get to what you really wantto, which is the content. i think as these introductionsbecome more and more popular--
some of the top applications outthere are using it, like youtube, g+, facebook, thingslike this are using these slidey menus, some with withswipe, some without-- that people are gettingused to it. and it becomes unnecessary. but yeah, generally if you havegestures that are hard, that there aren't any naturalway to hint that it's available, that you do need toprovide either some tutorial or some way to bootstrap theuser's mental model already.
so yeah, i'm cool with that,as long as you try to only show it at first, a couple oftimes, or something like that. yossi: some apps basically useoverlay on the layout with some arrows, and pointers,and text. and i think i prefer this way,the user sees the real interaction with the ui, insteadof an image showing with text and stuff. chris: i think it totallydepends on the interaction. so if there's something whereyou have to swipe, showing the
user is probably better. there's a good library calledshowcase view, which is based off the launches. so that's where you couldput buttons and something you have to click. i personally like showing theuser small interactions. so in some of the personalsource libraries i write, i always add an easy way for thedeveloper to a show demo. so yeah, i personally like it.
lucas: this is actually-- can you hear me? this is actually one of thereasons i'm not entirely convinced about this pattern. because it leads to trialand error, in general. suppose that there are lots oftop apps using it, but then you always wonder ifit's there or not. so we will always have to dosomething like this, show the user that it's there,and then you do it.
so this is one of the reasons ididn't like the menu button approach from previousandroid releases. because some apps just-- thehardware button, i mean-- some apps just didn't have it. so you had to try to see ifthere's something there. and for any pattern that youhave to try to see if it's there, it's a sign that there'ssomething that needs to be improved. either a standard hint that it'sthere, like the app menu,
it's the three dot thing. it's there. you know you click. you see something. if it's not there, there'sno option. but with sliding menus, you haveto try, or you have to give a hint. it's just a sign that there'ssomething that is not ready yet.
yossi: no, on your actionbar, onthe top you can say that if you have an app error, or maybea change of the home logo, then you havea sliding menu. lucas: but i mean, maybeif we changed the icon. it's just that i think it'sabusing the standard behavior because right now it's goingup in the hierarchy. and i mean, you might argue thata sliding-in menu is the upper, or the top level nodein your hierarchy. but it's not really, is it?
rich: when people do a slide-inmenu from the left and to the right-- nick: somewhat tricky. sparky: doesn't the design sitesay that the slide-in menu can only be atthe top level? yossi: yeah, it's like anactivity group of some sort, because you can refer to it asthe root holder for all the other actions you can doon your application. lucas: yeah, and the other thingi dislike about it is,
when you have such a big spacefor options, i think people will tend to overloadin terms of options. so you just have too many nodesinto a hierarchy just because you have space for it. and if you see things likefacebook, it has a huge thing. google+, you see it in a smarterway because it uses the space for showing morenotifications, so that's fine. but still it's tempting, becauseyou have this huge, infinite vertical spacefor adding options.
and in the case of mobile apps,i don't think that's a good thing to do. constraints are a goodthing on mobile, in general, i think. nick: yeah, we dropped out, sowe might have missed some of the conversation. but we're back now. i think two things i wantto touch with that. firstly, i think the gestureis like a power user thing.
that's how i think of it. i think you need to have someonscreen affordance, like you were saying, that you can'thave this, you have to try it and see. i think you need to have someonscreen affordance. so our preference wouldbe to use the up carrot to disclose it. that's our guidelines. some people use the [inaudible]menu, which is
gaining some traction as well. i very much see the bezel swipe,or the swiping, as a secondary way of launching. so in that way, i'm not sobothered if people don't know about it because it's more aboutonce you hit menu, the primary way of opening it, thebutton, and you see it slide out, that is your hint. that is your animation. that's the cue that thisthing moves that way.
and if you swipe it and discoverit, that you can do it with your finger rather thanhitting the button, then that's power userbonus, in a way. as long as there is one obviouson screen button, which is the default way to openit, i think that's the most important thing. and for the second thing i wasgoing to say is about the dumping ground. i very prefer if the slide-inmenu just is used for
navigation. i see it as an alternative tothe drop down navigation you might see on google maps, or ifthere's more tabs that you might want to have on screen. i see it as a direct replacementfor that. i'd rather not see it combinedwith actions. some people start puttingextra things in there. and i think, in a way, g+'snotifications almost fall into that bucket for me.
i'd rather see it's just about anavigation thing rather than oh, i've got some extraspace, i'll dump some extra stuff in there. chris: yeah, i agreewith that. i'd prefer it if the google+version showed just your unread notifications, ratherthan all of them. and then if you click on theunread notification, it'll take you to a list. that would be the way i'd doit if i was the developer.
sparky: teasing google+aside, empty space is important for layout. chris: going back to what yousaid about dumping ground, sure, that's up to the appdeveloper to make their app as cognitively easy touse as possible. so you should design yourapp so that it has-- nick: a structure. chris: yeah, well, astructure, yeah. three or four, or less, mainsections to your app.
and the user can then delvedeeper if they want to. so that's up to the appdeveloper to do that. nick: i think the problem iswhen you get to apps like facebook and google+, they'resuch huge apps. they're basically likean os, in a way. they offer so many functions. there are messaging. there's newsfeeds. there's photos.
there's communities. there's so much going on. lucas: there's a reason whyfacebook is splitting their app into different functions,the camera, messenger, and all that. and i think that's probablythe right approach. i wouldn't do this hugething in one place. chris: what i've got fromfacebook is that the reason they've got separate appsis so they can test
stuff out on users. so messenger, all the stuffthat's in messenger has been backported to thefacebook app. so it's the same code base nowin the actual facebook app for messages as it isfor messenger. same with the camera stuff. i do agree with you. i think with facebookthat they have overlaid the sliding menu.
they have got all theseseparate sections. nick: or layers, right? you can go back within thesliding menu, right? chris: yeah, but they've alsogot groups, and then you've got a sub-list of your groups. whereas, for me, it should bejust one group item where you can click and delve in. rich: ok, maybe we should takeone from the g+ stream now, instead of from the hangoutor the moderator.
alessandro capra is asking,"i've made an application, which is a music quiz. and it requires registrationfrom the user with username and password and other details,should i provide a privacy policy?" and the answer is, yes. yes, you should. our developer distributionagreement in section 4.3 says that if users are providingyou or your product with
access to username, details,products, email addresses, personal information, then youmust make the users aware that the information will beavailable to your products. and you must provide a legallyadequate privacy notice and protection for those users. so if you don't put a privacypolicy in and you are requesting personal details,then it may be grounds to get your application suspendedfrom the play store. you'll be violating thedda if you don't.
so definitely, please do put aprivacy policy in if you're requesting personalinformation. also, there's a slot in thedeveloper console at the bottom of your store listingwhere you can link to your privacy policy online. so users can see it beforethey've gone and downloaded the application and installedit and given you some of their details. because you may be getting somedetails off the handset
automatically, so it's quitegood if you can put the link in to the privacy policy. i know that the latest version2 of the publisher site doesn't let you publish your appuntil you've either put a privacy policy in or explicitlytold the system that you're not goingto have one. so it became mandatory to do theflag one way or the other in the latest version. hopefully that answers yourquestion, alessandro.
chris: looks like guiseppe'sgot a question. rich: has guiseppe gota question, or is he on a phone call? chris: no, he's gota question. rich: guiseppe? guiseppe: yes. well, i have a question aboutin-app billing version number three, and especially aboutthe local caching. i would like to understand howthis local caching work, if
the local caching mean thatthe information about the purchaser are riding inside somedatabase or inside some other protection mode. because in the documentationi didn't find nothing about that. the question is because i wantto understand what happens exactly when, for example, auser buys some item using the in-app system. and after we make the refund tothe users for any reason,
i'd like to know if the localcaching would take into account that the purchase hasbeen refunded and then will be not useful anymore forthe application? nick: how do you mean refundedin an in-app purchase? do you mean through-- guiseppe: i mean, for example,that the user writes to us and ask for the refund,not that he can make the refund himself. because this is not possible,as everybody knows.
nick: exactly correct. i don't think the app billingapi has the concept of refunding, so i doubt-- rich: i don't thinkit does either. no, i agree. so if you're trying to refundan in-app billing item, then they still own it. you've just given themtheir money back. guiseppe: so when i will use themethod to get purchases,
the purchase willbe not refreshed in the local history? rich: no, i think the user willstill own that item that they've purchased throughin-app billing. but i will have look,just in case. chris: yeah, i don't think itmatters if it's cached. guiseppe: in the documentation,i didn't find any useful about this. nick: yeah, i don't thinkcaching changes anything here.
i think, even without thecaching, if you refresh it from the server it will stillsay, yes, the user has purchased item. like i say, i don't think thein-app purchase api has any concept of refund. rich: slightly contraryto that, the documentation does say that. in-app billing doesn't allowusers to request refunds. but if you refund them throughgoogle checkout, google play
receives a refund notificationfrom check out and sends a refund notification tothe application. guiseppe: that is good. rich: in which case, as long asthe device is connected to the network, the local cachewill be updated straight away, and your application willreceive the refund notification. guiseppe: that's very good. and do you know, richard,if the local caching is
maintained by some sql likedatabase or any way? rich: i don't know wherethey keep the data. guiseppe: because i am thinkingif we have just to come back to [inaudible] license [inaudible], or wehave also to come back to [inaudible] the people that wetry to write some rove inside the database. rich: if it is a database,my guess is it's quite well encrypted.
i doubt there's anything onthere that's easy to attack. i wouldn't be worried aboutour side of it. i just put a link inthe chat window as well to handling refunds. and that then links off andshows you the flow. guiseppe: what exactly is thereason why in in-app items are not refundable? why google decide that? rich: well, because the usermay have already spent it.
they may be buying callingcredit, things like that, on your in-app billing. and then they may makea phone call and then refund the credit. if we had a 15 minute refundwindow, they could totally abuse that for in-app billing,because we don't know what they've just purchasedfrom you. if they can consume it in thefirst 15 minutes and then refund it, they could justcontinue doing that and have
infinite free serviceon your service. guiseppe: correct. rich: i mean, app developersexpected applications for that first 15 minutes. but for in-app billing,we don't know what you've just sold. so it's not reasonable. nick: cool, all right, we've got10 minutes to go, should we go back to the moderator and
pick up any more questions? who's got the moderatorat hand? do you have that? dave s. in london says, "i'mworking on improving the testing of my apps. right now i test on a fewdevices that run using monkey. i started adding some unit testsas well, but i'm not sure how to far togo with them. are there any other goodtesting methods?
how did you testfriendcaster?" let's see, this isn'ta very good answer. but we didn't as such. well, i did. i spent a lot oftime using it. so that was my main test. and i used it a helluva lot. but in terms of formal testing,there wasn't a whole lot done, just because itwas made by myself.
and i had to spend moredeveloping than testing. rich: yeah, my answer was-- chris: that was aboutit, really. we did a bit of monkey stuffbecause it's easy and cheap to do. unit testing's, it'shard to do anyway. but you can only really doproper unit testing on utility casting, because that'sthe easiest to do. if you're going to start doingui testing, it becomes very
hard very quickly. nick: so there's the uiautomator tool now, which has been launched, which isan interesting tool. it also helps you make sureyou add all your content descriptions and stuff,which is a good thing. johan, any other adviceon testing tools? i know you're a fan of these. johan: no, no, no. no, i'm mighty difficultas well.
i'm currently writing anapp using a network and it needs a server. and i'm dependenton that server. and so i'm not using robo. rich: yeah, etienne hasjust linked to a-- johan: i use unittesting a lot. but i'm not into user interfaceautomatic testing yet for this app. rich: you know, there's servicesout there as well,
testdroid and other such cloudservices where you can record scripts and send themup and get all the results back again. if it's a personal project, itest on an htc desire, the nexus 4, 7, and 10. and if it works on those, i justput it out there along with a link to the bug tracker,and hope that people file bugs beforei make it live. chris: did everyone see the blogpost yesterday by android
developers saying if you'vegot a nexus 10 or other high-res device you can call acouple of adb commands and you can emulate pretty much anydevice specification, in terms of display? rich: yeah, basically, if youown the highest resolution device that's available, thenyou can test every single chris: pretty handy. rich: no, it's not justfor the nexus 10. it's for whatever thehighest resolution
device is at any time. the nexus 7 i imagine to runthe same adb commands. the motorola xoom did as well. i'm not sure of those yet. i've never tried iton a nexus 4. i guess it does aswell, though. chris: yeah, it will. rich: but you can set theresolution to anything smaller than that for matching thenative resolution.
chris: you can set the screensize as well, so so you can change it to normal,large, extra large. [inaudible]. sparky: once upon a time, didn'tit require root to use that command? a few versions back? chris: what, adb? adb runs fine as you'rea normal user. sparky: not adb, but
specifically the display emulation? etienne: i have a question. have you guys played aroundwith the overdraw? it's part of the newestjellybean, if you go to developer settings-- nick: yeah, i left iton for a week once. and it was really interesting ifyou leave it on for a while and see what apps are doing. etienne: yeah, i noticed you'reallowed to, i think,
select an app to debug. but you can't select anyapp, it's only a certain list of apps. anyway, i turned it on. and i was noticing it wasexplaining the overdraw. but to disable it,i turned it off. and it looked like it was stilldisplaying on not only the app i set, butsome other apps. the only way to get rid of itwas to turn off the device.
nick: no, basically the setting,if you have overdraw turned on, it will be cachingon the start up. so you'll just have to killthe app and re-start it. etienne: oh, ok, ididn't know that. i thought you could just turnthe setting off and then-- nick: no, and it's on putfor the whole device. you don't turn it on fora particular app. you turn it on for the device. if it's not working for certainapps, it's because
they're not using the hardware acceleration rendering framework. they must explicitly be turningit off somehow. so that's the only timeyou wouldn't see the overdraw stuff. but yeah, you need to just killthe app, turn it on, run the apps you want to do,then turn it off, kill the app again. and you're good.
etienne: gotcha, yeah. i was just doing a hardboot, or reboot. rich: that would certainlydo it as well. sparky: i'm wondering ifmaybe there was some misunderstanding on whatthe set app for debugging setting was for. i assumed that was more justfor connecting up to an adb debugger when you'reon the device. i've never actually usedthat setting, have
you guys used it? rich: in the manifest, turningdebuggable on and off. nick: no, there's a thingin the debug-- rich: how does this [inaudible]which app is going to be debugged? nick: i've not used that. sparky: i mean, i don't thinkit's for targeting these on device diagnostics. i think that's for specificallywhat the remote
debugger is going to attach toon your device, like you're specifically tryingto debug an app you're writing, i assume. etienne: yeah, by defaultit says, no debug applications set. but you can choose only from asmall list of applications. chris: i'm guessing apps thathave android debuggable equals true in the manifest. etienne: oh, that'sprobably true.
because the app i'm workingon is debug true. rich: so it lets you debug appsthat you haven't written yourself maybe? sparky: possibly. rich: i don't know. perhaps [inaudible] somethingwill find out. chris: i'll look in the sourcecode, see if i just-- nick: use the source. etienne: i just hada question.
i know from reading on a lot ofdifferent blogs, they say that the mms, sms contentprovider is not really open source, or it's not reallypublicly available. rich: no, not at all. etienne: so if you can't reallyrely on that being a way to grab things like mms orsms saved on your phone, is there an alternative? or is that the only wayto go about it? nick: correct.
there's documented apis for smsand mms document apis for the incoming and stuff. so you can register forthe incoming ones and purchase those. but as for the actual contentprovider, it's much like calendar used to be pre-ics. they're undocumented, butthey're in the code. so use at your own risk. etienne: yeah, i know i'musing it at my own risk.
but i'm wonderinghow frequently does that get updated? i heard the paths of the mmssms db is different on different devices. i don't know if that's-- nick: it's kind ofthe whole point. it's not documented,so it could, and probably has, changed. etienne: manufacturerscan change that path?
chris: if they wish too. nick: they're free to change. etienne: so the only way toreally feel comfortable about using it is to test iton a lot of different manufacturers. rich: absolutely, yeah. yeah, read new smses come in. just start from the currenttime and build up your sms from now.
but try to read all the previoussmses and do things with those. then it's not a happyplace to be. etienne: i'm wondering isthere a way to emulate different manufacturer phones? chris: no. etienne: no. rich: no, samsung-- etienne: got to buya bunch of phones?
rich: while testing onlineservice, a samsung developer-- what's it called? maybe it's just calledsamsung developer. you can use devices there onlineand check them out, things like that. nick: so like, testdroid? rich: yeah, you could try iton testdroid, get access to some devices. but yeah, i mean, you may testit on one device and then a
firmware update will apply onthat device and it'll change the sms app. it's going to be a trickything to maintain. etienne: kind of scary. rich: yes. i would try and avoid the needto read all the previous smses, if possible. nick: ok, we're justabout out of time. so unless there's any burningquestions that people would
like to ask right now? johan: well, i have a burningquestion for a friend which raised the questionin moderator. he's trying to achieve somethinglike airplay on android, where he wants to playaudio from his the device on a server he simplyimplements himself. so like the bluetooth standard,which overrides the audio output to any devicelistening on bluetooth as well.
is there any way, or indication,or does anybody know about any tips aboutplaying via a wi-fi direct? nick: i don't quite understandthe question. so you want to redirect allsound output away from the phone to another audio sync? chris: i doubt youcan do that. yossi: you can do it if you'reusing the bluetooth headsets. rich: i would look at thebluetooth code and see what's going on there.
but you'll probablyfind there's something secure in there. yossi: on jellybean you cannotre-route all the audio. but if you switch your phoneto mode "in communication," then it will thinkyou're in a call. so basically all the input andoutput voices, or audio will go through the headsets. johan: ok, i've heard that. yeah, but still, he wantsto redirect the audio.
rich: yeah, it has to bedone in audio player. well, maybe not has to butthat's really where i'd start. have a look in the source,if it is secure. chris: there's [inaudible] and it's called bubble dna. so have a look at that. try and look at the source,because that does pretty much what you're asking. rich: i don't know ifthey use the custom
media player, though? they use their ownmedia player? chris: they do. but they do all the networkstuff as well. johan: great, thanks. nick: well, thanks forjoining us, everyone. and we will see you sametime next week.
0 Response to "rom sony experia for A7R"
Post a Comment