You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Alfie Kirkpatrick <Al...@ioko.com> on 2009/09/02 23:10:56 UTC

Supporting multiple devices, eg. browser + mobile + TV

Am wondering about ways to support this scenario cleanly in T5, where
visual layout is very different per device but the page classes could be
quite similar (clearly this depends to a large extent on whether devices
have radically different page flows and layouts).

 

One obvious approach would be to have a base page class for each page
and a subclass + device specific TML per device. The same approach could
be used for components. Maybe this is the best and only way. I can see
potential issues though, eg. if the base page class needs to inject a
component, would it work to inject the component's base class?

 

Does anyone else have experience of this or suggestions for different
approaches?

 

Thanks and regards, Alfie.


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Kalle Korhonen <ka...@gmail.com>.
On Wed, Sep 2, 2009 at 2:28 PM, Thiago H. de Paula
Figueiredo<th...@gmail.com> wrote:
> Em Wed, 02 Sep 2009 18:10:56 -0300, Alfie Kirkpatrick
> <Al...@ioko.com> escreveu:
>> Am wondering about ways to support this scenario cleanly in T5, where
>> visual layout is very different per device but the page classes could be
>> quite similar (clearly this depends to a large extent on whether devices
>> have radically different page flows and layouts).
> CSS solves most of the solution. Take a look at media queries
> (http://www.w3.org/TR/css3-mediaqueries/).
> Regarding Tapestry itself, for issues that can't be solved by using CSS
> itself, I would take advantage of the layout component pattern (some parts
> of the template could be omitted or replaced) and having a service and a
> component to tell me what kind of device did the request.

What if the device doesn't support CSS or that version of CSS? CSS
does go a long way, but depending on your array of supported devices
its rarely the only solution. My experience has been that while often
from the surface it looks like a good idea to render the same page for
different devices (the promise of JSF - glad I'm out of that
business), the work and page flows tend to differ just enough that in
practice it's often easier to keep the page flows separate for each
device than try to climb back from an endless swamp of generalizations
and customizations per device. However, since it's dead simple to
implement new components in T5, I'd look into creating specific
components (or a family of components) that might be usable on
multiple devices you are supporting for key tasks (say a custom
BeanDisplay for devices you are supporting etc.). But the best
approach likely varies wildly depending on the devices you are
supporting and the application you are developing.

Kalle

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: Supporting multiple devices, eg. browser + mobile + TV

Posted by Alfie Kirkpatrick <Al...@ioko.com>.
I guess I'm voting to make this better supported, ie. a way to customise the way tml's are loaded under the control of the application, therefore not having to hack/subvert the existing locale support. It seems to me a few people have tried to do this and found it harder than maybe it should be...

I fully understand and appreciate all the comments about having separate apps though!

Regards, Alfie.

-----Original Message-----
From: Komiwes Robin [mailto:robin.komiwes@atosorigin.com] 
Sent: 03 September 2009 08:31
To: Tapestry users
Subject: RE: Supporting multiple devices, eg. browser + mobile + TV

Hi,

We've done that here, and it wasn't a real pleasure party.

but yes, for each component and pages, we can use the same system than localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml

You've got to decorate a lot of internals services (PagePool, ComponentTemplateSource), hack the locale and prey for no API changes in the future. :-)

I agree with others comments, a web for desktop browser should never be the same web than a web for SmartPhones. You should do a specific app/page for other devices.


Robin K.
- Atos Worldline


-----Message d'origine-----
De : Christian Edward Gruber [mailto:christianedwardgruber@gmail.com]
Envoyé : jeudi 3 septembre 2009 06:04
À : Tapestry users
Objet : Re: Supporting multiple devices, eg. browser + mobile + TV

I'd go further - interfaces for the blind, for the hard of hearing -
these are still more clients.  If the user experience is going to be
substantially altered, then you can "convert" from some meta-interface
and have everything automatically expressed, but that often requires
that the framework make trade-off choices that are better handled by a
good User Experience designer.  A lot of what makes a good iPhone-
ready application is a different user-flow that's consistent with the
device's unique properties.  Shoe-horning a normal web-interface will
often result in a bad iPhone experience (though better than WAP
phones, to be sure).

cheers,
Christian.

On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:

> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick <Alfie.Kirkpatrick@ioko.com
> > escreveu:
>
>> So I think T5 helps separate concerns and assists in building
>> multi-device apps (ie. it's a decent framework to do this in), but
>> the
>> framework itself could do more if this becomes something many web
>> developers end up having to build for in future.
>
> What exactly could the framework do? There's a framework that does
> it: JSF. Then it got too complicated. Of course, we could be smarter
> than the JSF creators. :) But I agree with Howard: different devices
> with different capabilities, different frontends.
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java consultant, developer, and instructor
> http://www.arsmachina.com.br/thiago
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>

Christian Edward Gruber
e-mail: christianedwardgruber@gmail.com
weblog: http://www.geekinasuit.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: Supporting multiple devices, eg. browser + mobile + TV

Posted by Komiwes Robin <ro...@atosorigin.com>.
What do you mean by "components/pages resolution" ?


-----Message d'origine-----
De : Sebastian Hennebrueder [mailto:usenet@laliluna.de]
Envoyé : jeudi 3 septembre 2009 21:47
À : Tapestry users
Objet : Re: Supporting multiple devices, eg. browser + mobile + TV

Robin K. schrieb:
> myapp/components // the ordinatry
> myapp/wap/components / the wap overwrites
>
> We also already test this solution. It can be done for pages with not so
> much pain. For components it was a lot more complex. We finally abandonned
> this solution.
>

I assume that there are quite some things to do but wouldn't it be the
cleanest approach with the maximum of reusability?
It might be naive but doesn't it only require to adapt the page and the
component resolution? I can already overwrite default components so
there needs to be a kind of hierachical resolution already.


--
Best Regards / Viele Grüße

Sebastian Hennebrueder
-----
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de




>
>
> Sebastian Hennebrueder wrote:
>> The approach followed by Ramaze (a Ruby based framework) is to deliver
>> different content depending on the suffix.
>>
>> I like the approach but Tapestry probably doesn't fit in very well with
>> such a concept as content is created by Java Code or templates both in
>> pages and components.
>>
>> The idea to setup a separate application introduces a lot of redundant
>> code.
>>
>> What about a shadow directory structure holding components and templates
>> I would like to overwrite.
>>
>> myapp/components // the ordinatry
>> myapp/wap/components / the wap overwrites
>> ...
>> This allows to reuse what you can and replace what you need.
>>
>> Depending on the request you dispatch to one namespace or another.
>>
>>
>> Best Regards / Viele Grüße
>>
>> Sebastian Hennebrueder
>> -----
>> Software Developer and Trainer for Hibernate / Java Persistence
>> http://www.laliluna.de
>>
>>
>>
>> Komiwes Robin schrieb:
>>> Hi,
>>>
>>> We've done that here, and it wasn't a real pleasure party.
>>>
>>> but yes, for each component and pages, we can use the same system than
>>> localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml
>>>
>>> You've got to decorate a lot of internals services (PagePool,
>>> ComponentTemplateSource), hack the locale and prey for no API changes in
>>> the future. :-)
>>>
>>> I agree with others comments, a web for desktop browser should never be
>>> the same web than a web for SmartPhones. You should do a specific
>>> app/page for other devices.
>>>
>>>
>>> Robin K.
>>> - Atos Worldline
>>>
>>>
>>> -----Message d'origine-----
>>> De : Christian Edward Gruber [mailto:christianedwardgruber@gmail.com]
>>> Envoyé : jeudi 3 septembre 2009 06:04
>>> À : Tapestry users
>>> Objet : Re: Supporting multiple devices, eg. browser + mobile + TV
>>>
>>> I'd go further - interfaces for the blind, for the hard of hearing -
>>> these are still more clients.  If the user experience is going to be
>>> substantially altered, then you can "convert" from some meta-interface
>>> and have everything automatically expressed, but that often requires
>>> that the framework make trade-off choices that are better handled by a
>>> good User Experience designer.  A lot of what makes a good iPhone-
>>> ready application is a different user-flow that's consistent with the
>>> device's unique properties.  Shoe-horning a normal web-interface will
>>> often result in a bad iPhone experience (though better than WAP
>>> phones, to be sure).
>>>
>>> cheers,
>>> Christian.
>>>
>>> On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:
>>>
>>>> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick
>>>> <Alfie.Kirkpatrick@ioko.com
>>>>> escreveu:
>>>>> So I think T5 helps separate concerns and assists in building
>>>>> multi-device apps (ie. it's a decent framework to do this in), but
>>>>> the
>>>>> framework itself could do more if this becomes something many web
>>>>> developers end up having to build for in future.
>>>> What exactly could the framework do? There's a framework that does
>>>> it: JSF. Then it got too complicated. Of course, we could be smarter
>>>> than the JSF creators. :) But I agree with Howard: different devices
>>>> with different capabilities, different frontends.
>>>>
>>>> --
>>>> Thiago H. de Paula Figueiredo
>>>> Independent Java consultant, developer, and instructor
>>>> http://www.arsmachina.com.br/thiago
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>> Christian Edward Gruber
>>> e-mail: christianedwardgruber@gmail.com
>>> weblog: http://www.geekinasuit.com/
>>>
>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.

Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Sebastian Hennebrueder <us...@laliluna.de>.
Robin K. schrieb:
> myapp/components // the ordinatry
> myapp/wap/components / the wap overwrites
> 
> We also already test this solution. It can be done for pages with not so
> much pain. For components it was a lot more complex. We finally abandonned
> this solution.
> 

I assume that there are quite some things to do but wouldn't it be the 
cleanest approach with the maximum of reusability?
It might be naive but doesn't it only require to adapt the page and the 
component resolution? I can already overwrite default components so 
there needs to be a kind of hierachical resolution already.


-- 
Best Regards / Viele Grüße

Sebastian Hennebrueder
-----
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de




> 
> 
> Sebastian Hennebrueder wrote:
>> The approach followed by Ramaze (a Ruby based framework) is to deliver 
>> different content depending on the suffix.
>>
>> I like the approach but Tapestry probably doesn't fit in very well with 
>> such a concept as content is created by Java Code or templates both in 
>> pages and components.
>>
>> The idea to setup a separate application introduces a lot of redundant
>> code.
>>
>> What about a shadow directory structure holding components and templates 
>> I would like to overwrite.
>>
>> myapp/components // the ordinatry
>> myapp/wap/components / the wap overwrites
>> ...
>> This allows to reuse what you can and replace what you need.
>>
>> Depending on the request you dispatch to one namespace or another.
>>
>>
>> Best Regards / Viele Grüße
>>
>> Sebastian Hennebrueder
>> -----
>> Software Developer and Trainer for Hibernate / Java Persistence
>> http://www.laliluna.de
>>
>>
>>
>> Komiwes Robin schrieb:
>>> Hi,
>>>
>>> We've done that here, and it wasn't a real pleasure party.
>>>
>>> but yes, for each component and pages, we can use the same system than
>>> localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml
>>>
>>> You've got to decorate a lot of internals services (PagePool,
>>> ComponentTemplateSource), hack the locale and prey for no API changes in
>>> the future. :-)
>>>
>>> I agree with others comments, a web for desktop browser should never be
>>> the same web than a web for SmartPhones. You should do a specific
>>> app/page for other devices.
>>>
>>>
>>> Robin K.
>>> - Atos Worldline
>>>
>>>
>>> -----Message d'origine-----
>>> De : Christian Edward Gruber [mailto:christianedwardgruber@gmail.com]
>>> Envoyé : jeudi 3 septembre 2009 06:04
>>> À : Tapestry users
>>> Objet : Re: Supporting multiple devices, eg. browser + mobile + TV
>>>
>>> I'd go further - interfaces for the blind, for the hard of hearing -
>>> these are still more clients.  If the user experience is going to be
>>> substantially altered, then you can "convert" from some meta-interface
>>> and have everything automatically expressed, but that often requires
>>> that the framework make trade-off choices that are better handled by a
>>> good User Experience designer.  A lot of what makes a good iPhone-
>>> ready application is a different user-flow that's consistent with the
>>> device's unique properties.  Shoe-horning a normal web-interface will
>>> often result in a bad iPhone experience (though better than WAP
>>> phones, to be sure).
>>>
>>> cheers,
>>> Christian.
>>>
>>> On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:
>>>
>>>> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick
>>>> <Alfie.Kirkpatrick@ioko.com
>>>>> escreveu:
>>>>> So I think T5 helps separate concerns and assists in building
>>>>> multi-device apps (ie. it's a decent framework to do this in), but
>>>>> the
>>>>> framework itself could do more if this becomes something many web
>>>>> developers end up having to build for in future.
>>>> What exactly could the framework do? There's a framework that does
>>>> it: JSF. Then it got too complicated. Of course, we could be smarter
>>>> than the JSF creators. :) But I agree with Howard: different devices
>>>> with different capabilities, different frontends.
>>>>
>>>> --
>>>> Thiago H. de Paula Figueiredo
>>>> Independent Java consultant, developer, and instructor
>>>> http://www.arsmachina.com.br/thiago
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>>
>>> Christian Edward Gruber
>>> e-mail: christianedwardgruber@gmail.com
>>> weblog: http://www.geekinasuit.com/
>>>
>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Ben Gidley <be...@gidley.co.uk>.
We have had a solution that let us load different templates based on
arbitrary parameters. It would be possible to use this to  select a
different TML for the page.
This does require a some amount of overiding/hacking of internal services so
we never put it into production - but it is certainly feasible.

Ben Gidley

www.gidley.co.uk
ben@gidley.co.uk


On Thu, Sep 3, 2009 at 10:02 AM, Robin K. <ro...@atosorigin.com>wrote:

>
> myapp/components // the ordinatry
> myapp/wap/components / the wap overwrites
>
> We also already test this solution. It can be done for pages with not so
> much pain. For components it was a lot more complex. We finally abandonned
> this solution.
>
>
>
> Sebastian Hennebrueder wrote:
> >
> > The approach followed by Ramaze (a Ruby based framework) is to deliver
> > different content depending on the suffix.
> >
> > I like the approach but Tapestry probably doesn't fit in very well with
> > such a concept as content is created by Java Code or templates both in
> > pages and components.
> >
> > The idea to setup a separate application introduces a lot of redundant
> > code.
> >
> > What about a shadow directory structure holding components and templates
> > I would like to overwrite.
> >
> > myapp/components // the ordinatry
> > myapp/wap/components / the wap overwrites
> > ...
> > This allows to reuse what you can and replace what you need.
> >
> > Depending on the request you dispatch to one namespace or another.
> >
> >
> > Best Regards / Viele Grüße
> >
> > Sebastian Hennebrueder
> > -----
> > Software Developer and Trainer for Hibernate / Java Persistence
> > http://www.laliluna.de
> >
> >
> >
> > Komiwes Robin schrieb:
> >> Hi,
> >>
> >> We've done that here, and it wasn't a real pleasure party.
> >>
> >> but yes, for each component and pages, we can use the same system than
> >> localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml
> >>
> >> You've got to decorate a lot of internals services (PagePool,
> >> ComponentTemplateSource), hack the locale and prey for no API changes in
> >> the future. :-)
> >>
> >> I agree with others comments, a web for desktop browser should never be
> >> the same web than a web for SmartPhones. You should do a specific
> >> app/page for other devices.
> >>
> >>
> >> Robin K.
> >> - Atos Worldline
> >>
> >>
> >> -----Message d'origine-----
> >> De : Christian Edward Gruber [mailto:christianedwardgruber@gmail.com]
> >> Envoyé : jeudi 3 septembre 2009 06:04
> >> À : Tapestry users
> >> Objet : Re: Supporting multiple devices, eg. browser + mobile + TV
> >>
> >> I'd go further - interfaces for the blind, for the hard of hearing -
> >> these are still more clients.  If the user experience is going to be
> >> substantially altered, then you can "convert" from some meta-interface
> >> and have everything automatically expressed, but that often requires
> >> that the framework make trade-off choices that are better handled by a
> >> good User Experience designer.  A lot of what makes a good iPhone-
> >> ready application is a different user-flow that's consistent with the
> >> device's unique properties.  Shoe-horning a normal web-interface will
> >> often result in a bad iPhone experience (though better than WAP
> >> phones, to be sure).
> >>
> >> cheers,
> >> Christian.
> >>
> >> On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:
> >>
> >>> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick
> >>> <Alfie.Kirkpatrick@ioko.com
> >>>> escreveu:
> >>>> So I think T5 helps separate concerns and assists in building
> >>>> multi-device apps (ie. it's a decent framework to do this in), but
> >>>> the
> >>>> framework itself could do more if this becomes something many web
> >>>> developers end up having to build for in future.
> >>> What exactly could the framework do? There's a framework that does
> >>> it: JSF. Then it got too complicated. Of course, we could be smarter
> >>> than the JSF creators. :) But I agree with Howard: different devices
> >>> with different capabilities, different frontends.
> >>>
> >>> --
> >>> Thiago H. de Paula Figueiredo
> >>> Independent Java consultant, developer, and instructor
> >>> http://www.arsmachina.com.br/thiago
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >>> For additional commands, e-mail: users-help@tapestry.apache.org
> >>>
> >>
> >> Christian Edward Gruber
> >> e-mail: christianedwardgruber@gmail.com
> >> weblog: http://www.geekinasuit.com/
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@tapestry.apache.org
> >>
> >>
> >>
> >>
> >> Ce message et les pièces jointes sont confidentiels et réservés à
> l'usage
> >> exclusif de ses destinataires. Il peut également être protégé par le
> >> secret professionnel. Si vous recevez ce message par erreur, merci d'en
> >> avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
> >> message ne pouvant être assurée sur Internet, la responsabilité du
> groupe
> >> Atos Origin ne pourra être recherchée quant au contenu de ce message.
> >> Bien que les meilleurs efforts soient faits pour maintenir cette
> >> transmission exempte de tout virus, l'expéditeur ne donne aucune
> garantie
> >> à cet égard et sa responsabilité ne saurait être recherchée pour tout
> >> dommage résultant d'un virus transmis.
> >>
> >> This e-mail and the documents attached are confidential and intended
> >> solely for the addressee; it may also be privileged. If you receive this
> >> e-mail in error, please notify the sender immediately and destroy it. As
> >> its integrity cannot be secured on the Internet, the Atos Origin group
> >> liability cannot be triggered for the message content. Although the
> >> sender endeavours to maintain a computer virus-free network, the sender
> >> does not warrant that this transmission is virus-free and will not be
> >> liable for any damages resulting from any virus transmitted.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> >> For additional commands, e-mail: users-help@tapestry.apache.org
> >>
> >>
> >
> >
> >
> > --
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: users-help@tapestry.apache.org
> >
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Supporting-multiple-devices%2C-eg.-browser-%2B-mobile-%2B-TV-tp25265817p25272229.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by "Robin K." <ro...@atosorigin.com>.
myapp/components // the ordinatry
myapp/wap/components / the wap overwrites

We also already test this solution. It can be done for pages with not so
much pain. For components it was a lot more complex. We finally abandonned
this solution.



Sebastian Hennebrueder wrote:
> 
> The approach followed by Ramaze (a Ruby based framework) is to deliver 
> different content depending on the suffix.
> 
> I like the approach but Tapestry probably doesn't fit in very well with 
> such a concept as content is created by Java Code or templates both in 
> pages and components.
> 
> The idea to setup a separate application introduces a lot of redundant
> code.
> 
> What about a shadow directory structure holding components and templates 
> I would like to overwrite.
> 
> myapp/components // the ordinatry
> myapp/wap/components / the wap overwrites
> ...
> This allows to reuse what you can and replace what you need.
> 
> Depending on the request you dispatch to one namespace or another.
> 
> 
> Best Regards / Viele Grüße
> 
> Sebastian Hennebrueder
> -----
> Software Developer and Trainer for Hibernate / Java Persistence
> http://www.laliluna.de
> 
> 
> 
> Komiwes Robin schrieb:
>> Hi,
>> 
>> We've done that here, and it wasn't a real pleasure party.
>> 
>> but yes, for each component and pages, we can use the same system than
>> localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml
>> 
>> You've got to decorate a lot of internals services (PagePool,
>> ComponentTemplateSource), hack the locale and prey for no API changes in
>> the future. :-)
>> 
>> I agree with others comments, a web for desktop browser should never be
>> the same web than a web for SmartPhones. You should do a specific
>> app/page for other devices.
>> 
>> 
>> Robin K.
>> - Atos Worldline
>> 
>> 
>> -----Message d'origine-----
>> De : Christian Edward Gruber [mailto:christianedwardgruber@gmail.com]
>> Envoyé : jeudi 3 septembre 2009 06:04
>> À : Tapestry users
>> Objet : Re: Supporting multiple devices, eg. browser + mobile + TV
>> 
>> I'd go further - interfaces for the blind, for the hard of hearing -
>> these are still more clients.  If the user experience is going to be
>> substantially altered, then you can "convert" from some meta-interface
>> and have everything automatically expressed, but that often requires
>> that the framework make trade-off choices that are better handled by a
>> good User Experience designer.  A lot of what makes a good iPhone-
>> ready application is a different user-flow that's consistent with the
>> device's unique properties.  Shoe-horning a normal web-interface will
>> often result in a bad iPhone experience (though better than WAP
>> phones, to be sure).
>> 
>> cheers,
>> Christian.
>> 
>> On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:
>> 
>>> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick
>>> <Alfie.Kirkpatrick@ioko.com
>>>> escreveu:
>>>> So I think T5 helps separate concerns and assists in building
>>>> multi-device apps (ie. it's a decent framework to do this in), but
>>>> the
>>>> framework itself could do more if this becomes something many web
>>>> developers end up having to build for in future.
>>> What exactly could the framework do? There's a framework that does
>>> it: JSF. Then it got too complicated. Of course, we could be smarter
>>> than the JSF creators. :) But I agree with Howard: different devices
>>> with different capabilities, different frontends.
>>>
>>> --
>>> Thiago H. de Paula Figueiredo
>>> Independent Java consultant, developer, and instructor
>>> http://www.arsmachina.com.br/thiago
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>> 
>> Christian Edward Gruber
>> e-mail: christianedwardgruber@gmail.com
>> weblog: http://www.geekinasuit.com/
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
>> 
>> 
>> Ce message et les pièces jointes sont confidentiels et réservés à l'usage
>> exclusif de ses destinataires. Il peut également être protégé par le
>> secret professionnel. Si vous recevez ce message par erreur, merci d'en
>> avertir immédiatement l'expéditeur et de le détruire. L'intégrité du
>> message ne pouvant être assurée sur Internet, la responsabilité du groupe
>> Atos Origin ne pourra être recherchée quant au contenu de ce message.
>> Bien que les meilleurs efforts soient faits pour maintenir cette
>> transmission exempte de tout virus, l'expéditeur ne donne aucune garantie
>> à cet égard et sa responsabilité ne saurait être recherchée pour tout
>> dommage résultant d'un virus transmis.
>> 
>> This e-mail and the documents attached are confidential and intended
>> solely for the addressee; it may also be privileged. If you receive this
>> e-mail in error, please notify the sender immediately and destroy it. As
>> its integrity cannot be secured on the Internet, the Atos Origin group
>> liability cannot be triggered for the message content. Although the
>> sender endeavours to maintain a computer virus-free network, the sender
>> does not warrant that this transmission is virus-free and will not be
>> liable for any damages resulting from any virus transmitted.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>> 
>> 
> 
> 
> 
> -- 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Supporting-multiple-devices%2C-eg.-browser-%2B-mobile-%2B-TV-tp25265817p25272229.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Sebastian Hennebrueder <us...@laliluna.de>.
The approach followed by Ramaze (a Ruby based framework) is to deliver 
different content depending on the suffix.

I like the approach but Tapestry probably doesn't fit in very well with 
such a concept as content is created by Java Code or templates both in 
pages and components.

The idea to setup a separate application introduces a lot of redundant code.

What about a shadow directory structure holding components and templates 
I would like to overwrite.

myapp/components // the ordinatry
myapp/wap/components / the wap overwrites
...
This allows to reuse what you can and replace what you need.

Depending on the request you dispatch to one namespace or another.


Best Regards / Viele Grüße

Sebastian Hennebrueder
-----
Software Developer and Trainer for Hibernate / Java Persistence
http://www.laliluna.de



Komiwes Robin schrieb:
> Hi,
> 
> We've done that here, and it wasn't a real pleasure party.
> 
> but yes, for each component and pages, we can use the same system than localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml
> 
> You've got to decorate a lot of internals services (PagePool, ComponentTemplateSource), hack the locale and prey for no API changes in the future. :-)
> 
> I agree with others comments, a web for desktop browser should never be the same web than a web for SmartPhones. You should do a specific app/page for other devices.
> 
> 
> Robin K.
> - Atos Worldline
> 
> 
> -----Message d'origine-----
> De : Christian Edward Gruber [mailto:christianedwardgruber@gmail.com]
> Envoyé : jeudi 3 septembre 2009 06:04
> À : Tapestry users
> Objet : Re: Supporting multiple devices, eg. browser + mobile + TV
> 
> I'd go further - interfaces for the blind, for the hard of hearing -
> these are still more clients.  If the user experience is going to be
> substantially altered, then you can "convert" from some meta-interface
> and have everything automatically expressed, but that often requires
> that the framework make trade-off choices that are better handled by a
> good User Experience designer.  A lot of what makes a good iPhone-
> ready application is a different user-flow that's consistent with the
> device's unique properties.  Shoe-horning a normal web-interface will
> often result in a bad iPhone experience (though better than WAP
> phones, to be sure).
> 
> cheers,
> Christian.
> 
> On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:
> 
>> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick <Alfie.Kirkpatrick@ioko.com
>>> escreveu:
>>> So I think T5 helps separate concerns and assists in building
>>> multi-device apps (ie. it's a decent framework to do this in), but
>>> the
>>> framework itself could do more if this becomes something many web
>>> developers end up having to build for in future.
>> What exactly could the framework do? There's a framework that does
>> it: JSF. Then it got too complicated. Of course, we could be smarter
>> than the JSF creators. :) But I agree with Howard: different devices
>> with different capabilities, different frontends.
>>
>> --
>> Thiago H. de Paula Figueiredo
>> Independent Java consultant, developer, and instructor
>> http://www.arsmachina.com.br/thiago
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
> 
> Christian Edward Gruber
> e-mail: christianedwardgruber@gmail.com
> weblog: http://www.geekinasuit.com/
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 
> 
> Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.
> 
> This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 



-- 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: Supporting multiple devices, eg. browser + mobile + TV

Posted by Komiwes Robin <ro...@atosorigin.com>.
Hi,

We've done that here, and it wasn't a real pleasure party.

but yes, for each component and pages, we can use the same system than localization: i.e. : index.tml, index_fr.tml, index_iphone_fr.tml

You've got to decorate a lot of internals services (PagePool, ComponentTemplateSource), hack the locale and prey for no API changes in the future. :-)

I agree with others comments, a web for desktop browser should never be the same web than a web for SmartPhones. You should do a specific app/page for other devices.


Robin K.
- Atos Worldline


-----Message d'origine-----
De : Christian Edward Gruber [mailto:christianedwardgruber@gmail.com]
Envoyé : jeudi 3 septembre 2009 06:04
À : Tapestry users
Objet : Re: Supporting multiple devices, eg. browser + mobile + TV

I'd go further - interfaces for the blind, for the hard of hearing -
these are still more clients.  If the user experience is going to be
substantially altered, then you can "convert" from some meta-interface
and have everything automatically expressed, but that often requires
that the framework make trade-off choices that are better handled by a
good User Experience designer.  A lot of what makes a good iPhone-
ready application is a different user-flow that's consistent with the
device's unique properties.  Shoe-horning a normal web-interface will
often result in a bad iPhone experience (though better than WAP
phones, to be sure).

cheers,
Christian.

On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:

> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick <Alfie.Kirkpatrick@ioko.com
> > escreveu:
>
>> So I think T5 helps separate concerns and assists in building
>> multi-device apps (ie. it's a decent framework to do this in), but
>> the
>> framework itself could do more if this becomes something many web
>> developers end up having to build for in future.
>
> What exactly could the framework do? There's a framework that does
> it: JSF. Then it got too complicated. Of course, we could be smarter
> than the JSF creators. :) But I agree with Howard: different devices
> with different capabilities, different frontends.
>
> --
> Thiago H. de Paula Figueiredo
> Independent Java consultant, developer, and instructor
> http://www.arsmachina.com.br/thiago
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>

Christian Edward Gruber
e-mail: christianedwardgruber@gmail.com
weblog: http://www.geekinasuit.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org




Ce message et les pièces jointes sont confidentiels et réservés à l'usage exclusif de ses destinataires. Il peut également être protégé par le secret professionnel. Si vous recevez ce message par erreur, merci d'en avertir immédiatement l'expéditeur et de le détruire. L'intégrité du message ne pouvant être assurée sur Internet, la responsabilité du groupe Atos Origin ne pourra être recherchée quant au contenu de ce message. Bien que les meilleurs efforts soient faits pour maintenir cette transmission exempte de tout virus, l'expéditeur ne donne aucune garantie à cet égard et sa responsabilité ne saurait être recherchée pour tout dommage résultant d'un virus transmis.

This e-mail and the documents attached are confidential and intended solely for the addressee; it may also be privileged. If you receive this e-mail in error, please notify the sender immediately and destroy it. As its integrity cannot be secured on the Internet, the Atos Origin group liability cannot be triggered for the message content. Although the sender endeavours to maintain a computer virus-free network, the sender does not warrant that this transmission is virus-free and will not be liable for any damages resulting from any virus transmitted.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Christian Edward Gruber <ch...@gmail.com>.
I'd go further - interfaces for the blind, for the hard of hearing -  
these are still more clients.  If the user experience is going to be  
substantially altered, then you can "convert" from some meta-interface  
and have everything automatically expressed, but that often requires  
that the framework make trade-off choices that are better handled by a  
good User Experience designer.  A lot of what makes a good iPhone- 
ready application is a different user-flow that's consistent with the  
device's unique properties.  Shoe-horning a normal web-interface will  
often result in a bad iPhone experience (though better than WAP  
phones, to be sure).

cheers,
Christian.

On 2009-09-02, at 23:13 , Thiago H. de Paula Figueiredo wrote:

> Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick <Alfie.Kirkpatrick@ioko.com 
> > escreveu:
>
>> So I think T5 helps separate concerns and assists in building
>> multi-device apps (ie. it's a decent framework to do this in), but  
>> the
>> framework itself could do more if this becomes something many web
>> developers end up having to build for in future.
>
> What exactly could the framework do? There's a framework that does  
> it: JSF. Then it got too complicated. Of course, we could be smarter  
> than the JSF creators. :) But I agree with Howard: different devices  
> with different capabilities, different frontends.
>
> -- 
> Thiago H. de Paula Figueiredo
> Independent Java consultant, developer, and instructor
> http://www.arsmachina.com.br/thiago
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>

Christian Edward Gruber
e-mail: christianedwardgruber@gmail.com
weblog: http://www.geekinasuit.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
Em Wed, 02 Sep 2009 20:36:21 -0300, Alfie Kirkpatrick  
<Al...@ioko.com> escreveu:

> So I think T5 helps separate concerns and assists in building
> multi-device apps (ie. it's a decent framework to do this in), but the
> framework itself could do more if this becomes something many web
> developers end up having to build for in future.

What exactly could the framework do? There's a framework that does it:  
JSF. Then it got too complicated. Of course, we could be smarter than the  
JSF creators. :) But I agree with Howard: different devices with different  
capabilities, different frontends.

-- 
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Howard Lewis Ship <hl...@gmail.com>.
On Wed, Sep 2, 2009 at 4:36 PM, Alfie
Kirkpatrick<Al...@ioko.com> wrote:
> While I don't have a lot of experience in this I agree that different
> devices have wildly different CSS and Javascript support and simple CSS
> adaptation will rarely be enough, but a component could adapt its markup
> for different devices in some scenarios.
>
> I had the same thought amount a similar approach to localization using
> tml names. Did you look into this? I think there may be a lot of issues
> due to page caching in T5 and other subtleties. For example, using the
> API you can locate a specific block in a page by name. How would it know
> which tml to use in this case?

Actually, this has been around since Tapestry 1.0.  You can have
Index.tml, Index_fr.tml, Index_de.tml and Tapestry will select the
correct one.  When it builds a page, it builds it for a particular
page class and localization of the page.

>
> So I think T5 helps separate concerns and assists in building
> multi-device apps (ie. it's a decent framework to do this in), but the
> framework itself could do more if this becomes something many web
> developers end up having to build for in future.

It adds a complicated dimension to an already complicated framework.
Tapestry 4 sunk under the weight of too many options making impossible
for tools, developers (and even committers!) to know what the correct
behavior would be under many circumstances!  I want to avoid that, but
I understand the need for "skinning" the application. Still, the right
way today is probably multiple pages (perhaps in different folders)
for different UIs, or completely seperate applications (sharing common
libraries for entities, database access, common logic, etc.).


>
> Regards, Alfie.
>
> -----Original Message-----
> From: Carl Crowder [mailto:carl.crowder@taptu.com]
> Sent: 02 September 2009 22:36
> To: Tapestry users
> Subject: Re: Supporting multiple devices, eg. browser + mobile + TV
>
> Thiago H. de Paula Figueiredo wrote:
>> Em Wed, 02 Sep 2009 18:10:56 -0300, Alfie Kirkpatrick
>> <Al...@ioko.com> escreveu:
>>
>>> Am wondering about ways to support this scenario cleanly in T5, where
>>> visual layout is very different per device but the page classes could
> be
>>> quite similar (clearly this depends to a large extent on whether
> devices
>>> have radically different page flows and layouts).
>>
>> CSS solves most of the solution. Take a look at media queries
>> (http://www.w3.org/TR/css3-mediaqueries/).
>> Regarding Tapestry itself, for issues that can't be solved by using
> CSS
>> itself, I would take advantage of the layout component pattern (some
>> parts of the template could be omitted or replaced) and having a
> service
>> and a component to tell me what kind of device did the request.
>
> This really isn't true unless you only support more modern phones. We do
>
> a similar thing and we've steered away from Tapestry to support lower
> end phones because they all have their own crap browser with their own
> stupid CSS misinterpretations.
>
> We have a list as long as your arm of idiotic things blackberry browsers
> do.
>
> I once tried to work out how best to do this. My main ideas were
> something similar to localisation where we had a "Home_nokia.tml" type
> thing. Also, overriding MarkupWriter to write DIVs with a certain class
> instead of P tags.
>
> I still believe Tapestry is the best framework to do it in based on the
> few I've encountered. It's something that is so fiddly for the crappier
> phones that however you choose to do it will be a pain in the arse.
>
> Alfie: let me know how you get on. We may be trying something similar in
>
> the future.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


RE: Supporting multiple devices, eg. browser + mobile + TV

Posted by Alfie Kirkpatrick <Al...@ioko.com>.
While I don't have a lot of experience in this I agree that different
devices have wildly different CSS and Javascript support and simple CSS
adaptation will rarely be enough, but a component could adapt its markup
for different devices in some scenarios.

I had the same thought amount a similar approach to localization using
tml names. Did you look into this? I think there may be a lot of issues
due to page caching in T5 and other subtleties. For example, using the
API you can locate a specific block in a page by name. How would it know
which tml to use in this case?

So I think T5 helps separate concerns and assists in building
multi-device apps (ie. it's a decent framework to do this in), but the
framework itself could do more if this becomes something many web
developers end up having to build for in future.
 
Regards, Alfie.

-----Original Message-----
From: Carl Crowder [mailto:carl.crowder@taptu.com] 
Sent: 02 September 2009 22:36
To: Tapestry users
Subject: Re: Supporting multiple devices, eg. browser + mobile + TV

Thiago H. de Paula Figueiredo wrote:
> Em Wed, 02 Sep 2009 18:10:56 -0300, Alfie Kirkpatrick 
> <Al...@ioko.com> escreveu:
> 
>> Am wondering about ways to support this scenario cleanly in T5, where
>> visual layout is very different per device but the page classes could
be
>> quite similar (clearly this depends to a large extent on whether
devices
>> have radically different page flows and layouts).
> 
> CSS solves most of the solution. Take a look at media queries 
> (http://www.w3.org/TR/css3-mediaqueries/).
> Regarding Tapestry itself, for issues that can't be solved by using
CSS 
> itself, I would take advantage of the layout component pattern (some 
> parts of the template could be omitted or replaced) and having a
service 
> and a component to tell me what kind of device did the request.

This really isn't true unless you only support more modern phones. We do

a similar thing and we've steered away from Tapestry to support lower 
end phones because they all have their own crap browser with their own 
stupid CSS misinterpretations.

We have a list as long as your arm of idiotic things blackberry browsers
do.

I once tried to work out how best to do this. My main ideas were 
something similar to localisation where we had a "Home_nokia.tml" type 
thing. Also, overriding MarkupWriter to write DIVs with a certain class 
instead of P tags.

I still believe Tapestry is the best framework to do it in based on the 
few I've encountered. It's something that is so fiddly for the crappier 
phones that however you choose to do it will be a pain in the arse.

Alfie: let me know how you get on. We may be trying something similar in

the future.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Carl Crowder <ca...@taptu.com>.

Thiago H. de Paula Figueiredo wrote:
> Em Wed, 02 Sep 2009 18:10:56 -0300, Alfie Kirkpatrick 
> <Al...@ioko.com> escreveu:
> 
>> Am wondering about ways to support this scenario cleanly in T5, where
>> visual layout is very different per device but the page classes could be
>> quite similar (clearly this depends to a large extent on whether devices
>> have radically different page flows and layouts).
> 
> CSS solves most of the solution. Take a look at media queries 
> (http://www.w3.org/TR/css3-mediaqueries/).
> Regarding Tapestry itself, for issues that can't be solved by using CSS 
> itself, I would take advantage of the layout component pattern (some 
> parts of the template could be omitted or replaced) and having a service 
> and a component to tell me what kind of device did the request.

This really isn't true unless you only support more modern phones. We do 
a similar thing and we've steered away from Tapestry to support lower 
end phones because they all have their own crap browser with their own 
stupid CSS misinterpretations.

We have a list as long as your arm of idiotic things blackberry browsers do.

I once tried to work out how best to do this. My main ideas were 
something similar to localisation where we had a "Home_nokia.tml" type 
thing. Also, overriding MarkupWriter to write DIVs with a certain class 
instead of P tags.

I still believe Tapestry is the best framework to do it in based on the 
few I've encountered. It's something that is so fiddly for the crappier 
phones that however you choose to do it will be a pain in the arse.

Alfie: let me know how you get on. We may be trying something similar in 
the future.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by "Thiago H. de Paula Figueiredo" <th...@gmail.com>.
Em Wed, 02 Sep 2009 18:10:56 -0300, Alfie Kirkpatrick  
<Al...@ioko.com> escreveu:

> Am wondering about ways to support this scenario cleanly in T5, where
> visual layout is very different per device but the page classes could be
> quite similar (clearly this depends to a large extent on whether devices
> have radically different page flows and layouts).

CSS solves most of the solution. Take a look at media queries  
(http://www.w3.org/TR/css3-mediaqueries/).
Regarding Tapestry itself, for issues that can't be solved by using CSS  
itself, I would take advantage of the layout component pattern (some parts  
of the template could be omitted or replaced) and having a service and a  
component to tell me what kind of device did the request.

Most browsers today, even Opera Mini (for simple mobile phones), can deal  
with pages that weren't written for small devices and/or resolutions, so  
this isn't much of an issue IMHO.

-- 
Thiago H. de Paula Figueiredo
Independent Java consultant, developer, and instructor
http://www.arsmachina.com.br/thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Supporting multiple devices, eg. browser + mobile + TV

Posted by Howard Lewis Ship <hl...@gmail.com>.
My "official line" on this kind of thing is that supporting multiple
devices is really multiple applications. There's plenty of room for
sharing in terms of back end data and maybe some abstract base
classes, but a small device application (to be effective and liked)
needs to be more than just the full app with the graphics turned down
a notch ... you need to focus on what the user would want to
accomplish remotely and optimize for that case.

I really want to avoid the idea that you can solve this with an XSLT
type solution ... that's programming inside a big ugly case statement
and is not going to give you good results.

You end up balancing a small amount of duplication vs. a very large
potential for unexpected consequences when making minor changes ("oh,
so changing the order of those buttons breaks the WAP version?  Who
would have guessed?").

On Wed, Sep 2, 2009 at 2:10 PM, Alfie
Kirkpatrick<Al...@ioko.com> wrote:
> Am wondering about ways to support this scenario cleanly in T5, where
> visual layout is very different per device but the page classes could be
> quite similar (clearly this depends to a large extent on whether devices
> have radically different page flows and layouts).
>
>
>
> One obvious approach would be to have a base page class for each page
> and a subclass + device specific TML per device. The same approach could
> be used for components. Maybe this is the best and only way. I can see
> potential issues though, eg. if the base page class needs to inject a
> component, would it work to inject the component's base class?
>
>
>
> Does anyone else have experience of this or suggestions for different
> approaches?
>
>
>
> Thanks and regards, Alfie.
>
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org