Archivo por meses: mayo 2021

gsNotas.Mobile v2.1.0.4 y v2.1.0.5

gsNotas.Mobile multiplataforma
(versiones 2.1.0.4 y 2.1.0.5)

Nota:
Esta es la página para la última versión publicada de gsNotas multiplataforma.
Si estás buscando la versión 2.0.0.33 sigue el enlace. 

En la última actualización de ayer 26 de mayo de 2021 (la terminé de compilar, etc. ayer día 26 pero hoy 27 de mayo es cuando la hago público y pondré el código fuente de esta última release en GitHub) ha habido unos cambios con respecto a la última versión, entre ellos que está disponible para Windows UWP (Universal Windows Platform) y estará publicada en la Microsoft Store cuando este sitio tenga el certificado de seguridad, que aún no tiene por aquello del cambio de proveedor de hosting y el latazo de los cambios de registro de los dominios, etc.).

El nombre cambia a gsNotas (gsNotas.Mobile) pero que cada plataforma tendrá el suyo propio: gsNotas.Android para Android, gsNotas.UWP para la plataforma universal de Windows y gsNotas.iOS para el iPhone (en teoría para cualquier dispositivo iOS).

La versión para iOS (iPhone) ya he podido hacerla funcionar en el móvil que tengo: iPhone 7 plus.
Aún no puedo crear la aplicación para la App Store de Apple porque necesito un Mac con la última versión de Xcode, y el Mac que tengo actualmente a mi disposición (a través de conexión remota), el de mi nuera Olena, no tiene la última versión del Mac OS por tanto no puedo tener el último Xcode.
Aunque me ha comentado mi hijo David que está por actualizarlo, aunque esa última versión del MacOS no es de su agrado… se ve que tiene fallos… 

La versión para iOS (iPhone, etc.) tendrá que esperar, ya que había problemas entre Microsoft y Apple con el tema de los certificados, etc., y parece ser que ya lo han solucionado, el problema es que para poder crear el paquete de instalación necesito un Mac con la última versión de Xcode y el que tengo disponible es una versión del iOS que no soporta esa última versión de Xcode, así que… a esperar o a ver si un alma caritativa me ofrece un Mac de forma remota con la última versión del iOS.

 

Novedades en esta versión (2.1.0.4~2.1.0.5)

v2.1.0.5 (27-mayo-2021)

Aparte de poder compilar y probar la versión para iOS en un iPhone 7 Plus, he añadido código para que los Placeholder (el texto mostrado como indicador de qué se espera que escribas) se vean también en modo oscuro (en modo light/claro se veían bien, pero desaparecían en modo dark/oscuro).
Y es que yo suelo tener mi móvil (de Android) en modo oscuro, más que nada por el tema del ahorro de batería y normalmente no se veían esos placeholders salvo que cambiara a modo claro (quitando el ahorro extremo de batería).

Novedades cosméticas

La mayoría de estas novedades son más bien cosméticas, es decir, un pequeño lavado de cara, pero no en plan grande, si no, de apoco que dirían mis colegas del otro lado del charco; como por ejemplo, dividir todas las opciones que antes se mostraban en la pantalla de inicio en dos pantallas (ahora pondré las capturas).
De esta forma, las más usuales estarán en la primera pantalla y el resto en la otra.

Pero también hay novedades en cuanto a la funcionalidad.

Novedades funcionales

El otro día (ya no recuerdo qué día) me cambié de compañía telefónica en el móvil, tenía Digi Mobil y me cambié a Amena. El cambio fue porque yo vivo en el campo y aquí no hay cobertura telefónica, esto es como un agujero negro para las compañías telefónicas, solo tengo acceso por medio del Wi-Fi, pero no porque una compañía telefónica lo ofrezca, no, para eso también es un agujero negro, es porque un colega tiene un repetidor de señal que trae desde el pueblo (Nerja) hasta aquí los montes (Río de la Miel), y hasta ahora toda la comunicación era por medio de Internet. Pero los de Orange ofrecen un servicio llamado Llamadas por Wi-Fi, y como Orange es caro (para mí) me decidí por Amena que tiene una tarifa aceptable.
Retomamos la historia, sin tantas historias:
Y en ese transcurso del cambio de compañía, perdí la conexión a Internet mientras estaba en el pueblo, como esta utilidad la suelo usar para tomar notas, quise abrirla para consultar algo, y resulta que me decía que no había conexión a Internet, así que, decidí usar las notas locales, pero… ¡No me las mostraba! ¿Por qué? Porque no había conexión a Internet… ¿¿¿???
Así que… me dije a mí mismo:
A ver Guille… si las notas locales están para usarlas cuando no hay conexión y no se pueden usar cuando no tienes conexión… ¿para qué puñetas sirven?
Y me respondí:
¡Poh e verdá! (yo es que conmigo mismo hablo así)

Así que… esa es una de las novedades funcionales de la nueva versión:
¡Que se puede trabajar de forma local aunque no estés logueado!

Por tanto, y para que quede evidente, en la pantalla de LOGIN he añadido un botón para conectar de forma local: Acceder sin conexión.

La segunda novedad importante es que las notas permiten más de 2048 caracteres.
Por ahora no está accesible a todo el mundo, lo siento, solo para los que hayan hecho donativos de 25€ o más.
Pero no te preocupes, las notas se pueden seguir guardando aunque no guarde más de 2048 caracteres.
En realidad, la aplicación usa dos tablas de notas: Notas y NotasMax.
En la primera (Notas) usa un campo (Texto) de tipo nchar(2048), lo iba a cambiar a nchar(4000) que es el máximo permitido para nchar, pero para ello tenía que eliminar todos los datos que ya había (recrear la tabla) y… pues como que no era plan.
Así que, he creado la segunda tabla (NotasMax) en la que el campo Texto es de nvarchar(Max), es decir, con capacidad de 2GB máximo que viene a ser de 1GB de caracteres.
He probado el rendimiento tanto en Android como en Windows y va bien.

Como te he dicho antes, esa otra tabla solo está accesible si has donado 25€ o más.
Si no es así, no puedes seleccionar cuál de las dos tablas usar y por tanto, usará la tabla normal de 2048 caracteres máximo, que creo que para notas normales es más que suficiente.
La tabla que estás usando se muestra en la barra de estatus (abajo). Si usas las notas locales, la capacidad será la que da SQLite, que la verdad no sé cuál es. Sigue este enlace si quieres leer sobre el tema (aunque a mí no me queda claro cuántos caracteres se puede tener en un campo de texto).

Otros de los cambios, que serían más bien estéticos, es el coloreado de los textos y demás. Lo he probado con el tema claro y oscuro de mi móvil Android y va bien. En el emulador siempre van bien los dos tipos de temas, pero cuando la uso desde el móvil «de verdad» no siempre se muestran todos los textos.
En Windows también va bien con el tema oscuro, aunque en realidad solo afecta a los campos de edición, el resto se muestra igual con los dos tipos de temas.

Con la versión 2.1.0.5 ya está solucionado lo de los Placeholder en Android (en iOS y UWP no era problema).

Aunque en Android el texto de ayuda en los campos sigue sin mostrarse cuando se usa el tema oscuro, es decir lo que se indica en Placeholder. Algún día espero poder solucionarlo. 🙂

La configuración la guardo ahora en un fichero de texto interno (en Environment.SpecialFolder.LocalApplicationData) ya que al guardarlo como hasta ahora en Application.Current.Properties, no siempre recuperaba esos valores… Lo mismo es por fallo mío, pero… uno de mis dichos es: Si las cosas no siempre funcionan igual, intenta usar lo que siempre debería funcionar.
Por tanto, si has estado usando la versión anterior, puede que los valores de la configuración no te los lea cuando abras por primera vez esta nueva versión.

Cosas diferentes en la app de Android de la de UWP

Aunque no son funcionales, hay un par de cambios entre las app de Android y la de Windows (UWP), y es que en la de Windows (en escritorio que es como la utilizo) la flechita de ir atrás es muy pequeña, así que… he añadido botones para ir atrás que en la aplicación de Android (u otra que no sea de UWP) no se muestran. Esos botones solo sirven para ir a la página anterior, por tanto, no son realmente funcionales si no, más bien estéticos.

Respecto a esto, el botón de añadir nueva nota, en Android siempre se mostraba (+Nota), pero en UWP se mostraba el menú ese de tres puntitos a la derecha y quedaba como oculto esa posibilidad de agregar una nueva nota, así que… he optado por poner un botón bien visible para que quede claro si se quiere añadir una nueva nota qué es lo que hay que hacer.

Y creo que esto es todo.
Ahora te pondré un par de capturas tanto de la app de Android (en dispositivo real) como de UWP en la versión escritorio.

 

Descargas de las aplicaciones

Comentarte que a día de hoy 27 de mayo de 2021, la aplicación de UWP en Mocrosoft Store aún no está disponible, ya que me la rechazan porque el acceso a la política de privacidad no se muestra de forma correcta. Y esto es porque al acceder a este blog que aún no tiene el certificado de seguridad para usar HTTPS, pues… eso… dicen que nones.
Cuando esté disponbible pondré el enlace a la tienda.
Cambié la url de la política de privacidad y la publiqué… o eso pensé, ya que en realidad estaba aún con la advertencia… así que… esta mañana (7 de junio 2021) le di a publicar en la MS Store y ya está disponible.

La de Windows (UWP) la puedes instalar desde Microsoft Store.
Este es el enlace en Microsoft Store (v2.1.0.6).

La de Android la puedes descargar desde GitHub.
Este es el enlace para la release v2.1.0.5 en GitHub.

Donativos con PayPal

Como podrás ver en las capturas (figuras 3 y 6) he puesto un botón por si quieres Hacer un donativo con PayPal que te llevará a la misma página que el enlace anterior.
Ese donativo figurará como que es para gsNotas y por tanto te servirá para ir acumulando y acceder a las características de los donadores. 😉
Ya sabes que todo esto es gratis y aunque le dedico bastante tiempo no es que quiera cobrar por ese tiempo… pero ya sabes que de algo hay que vivir… pagar la comida, el alquiler de la casa, los impuestos, la conexión a Internet, etc. Así que… si te sientes generoso y quieres (y puedes hacerlo), ahí está el botón de hacer donativos. Imagina que me quieres invitar a un café o a una chela… pues… ¡ya sabes qué hacer! 😉

Capturas

De Android con el Placeholder solucionado en v2.1.0.5.
El texto en gris: Escribe aquí tu comentario antes no se veía cuando estaba seleccionado el terma oscuro. Que aunque en la captura no lo parezca, está usando el tema oscuro.

Figura 9. En Android (tema oscuro aunque no lo parezca) ya se ve el texto de los Placeholders.

De iPhone (iOS)

Figura 8. Captura de la pantalla de inicio en un iPhone 7 Plus.

De Windows (UWP) Escritorio

Figura 1. La página de inicio en Windows (UWP Desktop).
Figura 2. La página de acceso (Login) en Windows UWP.
Figura 3. Las opciones de configuración en UWP. Puedes ver el botón Volver que no está en Android.

De Android (dispositivo Pixel 4a)

Figura 4. La página de inicio en dispositivo Android (Pixel 4a).
Figura 5. La página de Otras opcione en dispositivo Android (Pixel 4a).
Figura 6. La página de configuración en dispositivo Android (Pixel 4a).
Figura 7. La página de acceso (Login) en dispositivo Android (Pixel 4a).

Nos vemos.
Guillermo

gsNotasNET.Android v2.0.0.33

Nota:
Esta es la versión 2.0.0.33 publicada el 31 de diciembre de 2021.
A fecha de hoy 27 de mayo de 2021 está la versión 2.1.0.4 que estará en el mismo post en el que estaba la anterior (por el tema de los enlaces) pero el contenido es diferente, ya que ahí te cuento las novedades añadidas recientemente (y será la que mantenga la última versión hasta que decida cambiar… 🙂 )

gsNotasNET multiplataforma

Aunque el nombre sea gsNotasNET.Android es una aplicación para dispositivos móviles (móviles y tabletas) pensada (inicialmente) para usar con Android, pero que después le he añadido proyectos para iOS (iPhone y iPad de Apple) y UWP (Universal Windows Plataform, en teoría para móviles, tabletas y Start de Windows 10). Pero que a día de hoy (31-dic-2020) no he sido capaz de hacerlos funcionar en esos dos últimos, la aplicación, que accede a una base de datos externa de SQL Server, además de una local creada con SQL Lite, por ahora solo funciona correctamente en dispositivos Android. Actualmente está publicada la versión 2.0.0.33, el paquete para Android lo puedes descargar desde esta release: gsNotasNET.Android v2.0.0.33

En distintas entradas de este blog he ido publicando lo que cada una de las releases (versiones) hace.

A continuación te pondré unos enlaces a esas distintas versiones para que vayas viéndolas. Empezaré por la más reciente.

  1. Quien dice 32, dice 33: gsNotasNET.Android v2.0.0.33.

  2. gsNotasNET.Android release v2.0.0.32.

  3. Ya está lista la app gsNotasNET.Android v2.0.0.*. gsNotasNET.Android v2.0.0.28.

  4. gsNotasNET para Android con Xamarin.Forms. Con comentarios y demás para la versión v1.0.0.18 (video explicativo) y v1.0.0.17 (capturas).

  5. Todas estas versiones están basadas en un intento de hacer una aplicación similar a gsNotasNETF.

Sobre el uso de la aplicación para dispositivos móviles en iOS y UWP

Como digo en el proyecto de gsNotasNET.Android publicado en GitHub, por ahora la aplicación que usa la base de datos de SQL Server alojada en un servidor en la nube solo funciona (y está operativa al 100%) en dispostiivos Android, los proyectos para iOS (iPhone, iPad) y para UWP (Windows 10) no funcionan, el de iOS no he sido capaz de hacerlo funcionar ni siquiera usando Visual Studio 2019 para Mac, y el de Windows 10 (UWP) no lo he podido poner en funcionamiento de forma local en Windows 10 (al intentar probarlo en los emuladores, se quedaba colgado intentando lanzar el dispositivo emulado).

Así que, seguramente crearé un proyecto multiplataforma pero que solamente use las notas en la base local, a ver si es por el acceso a SQL Server por lo que no funciona.

De todo esto te iré informando.

¡Feliz Año 2021!

Un par de capturas de la versión v2.0.0.33

La pantalla principal de la versión v2.0.0.33:

La pantalla Acerca de v2.0.0.33:

Nos vemos.
Guillermo

Problemas con el acceso a elguille.info

Pues eso… parece que con esto del cambio de servidor de alojamiento (hosting) todo está patas arriba… y por supuesto, también le toca a elguille.info (aunque creo que de este aún no he empezado la migración), pero…

Así que… paciencia… y ya mismo estará todo nuevamente en línea…

A fecha de hoy 29 de mayo de 2021 ya está «normal» con el certificado para usar HTTPS… esperemos que este blog (elguillemola) lo esté también pronto.

Nos vemos.
Guillermo

El blog está en un nuevo hosting

Y no sé si falla la base de datos o qué… pero aunque están, los bloques predefinidos no aparecen, ni las categorías, etc. y eso que todo se usa a través de una base de datos… en fin… al WordPress le queda aún cosas básicas que solucionar… 😉

Aún no está el certificado para usar «correctamente» el HTTPS, pero… todo se andará…

Nos vemos.
Guillermo

Adiós Xamarin.Forms, bienvenido .NET MAUI

Pues eso… en el anuncio de Visual Studio 2022 (disponible en versiones preview a partir de este verano) se avisa de que .NET MAUI será la forma de crear aplicaciones para móviles y Web multiplataforma.

Si quieres puedes ver el código (e incluso instalarlo) de .NET MAUI usando el enlace que te he puesto antes, que te llevará al proyecto en GitHub.

Por ahora no lo he probado… pero lo probaré y seguramente te comentaré cosas sobre este nuevo entorno de desarrollo (en realidad no es un entorno, pero para que nos entendamos, ya que se utiliza desde Visual Studio).

Nos vemos.
Guillermo

Detectar por código C# o Visual Basic si una página ASP.NET se muestra en un móvil

Pues eso… aunque he leído por ahí que no es conveniente detectar si se está navegando en un dispositivo móvil… eso era porque lo hacía con código duro (hard-code) es decir, detectar según el valor devuelto por userAgent de window.navigator, que sí, que puede producir resultados no deseados… pero… si usas Request.Browser.IsMobileDevice la cosa cambia.

Y hacer esa comprobación es bien simple.
¿Dónde hacerla?
En cualquier parte del código «script» de tu página ASP.NET (de .NET Framework), ya sea que estés usando Visual Basic o C# (o incluso otros lenguajes que soporten las páginas web asp.net de .net framework).

Un par de ejemplos, por favor

Esta es una página .aspx con código para C#:

<%@ Page Language="C#" AutoEventWireup="true" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Browser.IsMobileDevice)
        {
            LabelDesktop.Visible = false;
            LabelMobile.Visible = true;
        }
        else
        {
            LabelDesktop.Visible = true;
            LabelMobile.Visible = false;
        }
    }
</script>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="font-family:Consolas">
    <form id="form1" runat="server">
        <div>
            <asp:Label runat="server" ID="LabelMobile"  Visible="false"
                Font-Size="xx-Large" Font-Bold="true"
                Text="Estas viendo esto en el navegador de un dispositivo móvil." />
            <asp:Label runat="server" ID="LabelDesktop"  Visible="false"
                Font-Size="xx-Large" Font-Bold="true"
                Text="Estas viendo esto en el navegador de escritorio." />
        </div>
    </form>
</body>
</html>

Esta es una página .aspx con código para Visual Basic:

<%@ Page Language="VB" AutoEventWireup="true"  %>

<script runat="server">
    Protected Sub Page_Load(sender As Object, e As EventArgs)
        If Request.Browser.IsMobileDevice Then
            LabelDesktop.Visible = False
            LabelMobile.Visible = True
        Else
            LabelDesktop.Visible = True
            LabelMobile.Visible = False
        End If
    End Sub
</script>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body style="font-family:Consolas">
    <form id="form1" runat="server">
        <div>
            <asp:Label runat="server" ID="LabelMobile"  Visible="false"
                Font-Size="xx-Large" Font-Bold="true"
                Text="Estas viendo esto en el navegador de un dispositivo móvil." />
            <asp:Label runat="server" ID="LabelDesktop"  Visible="false"
                Font-Size="xx-Large" Font-Bold="true"
                Text="Estas viendo esto en el navegador de escritorio." />
        </div>
    </form>
</body>
</html>

Nota:
Puedes tener las dos páginas en una misma aplicación o proyecto WEB de Visual Studio sin necesidad de hacer nada especial, solo tener las páginas en un sitio que acepte .NET Framework.

A tener en cuenta

Si muestras la páginas en un dispositivo móvil, es posible que el navegador te permita ver la página como «escritorio», en ese caso, el valor que devuelve es escritorio, no que es móvil.
En las siguientes capturas tienes la demostración.
En esas capturas estoy usando el Edge para Android en un Google Pixel 4a.

En la figura 1 estoy mostrando la página versión de Visual Basic en el móvil, que si quieres la puedes probar usando el enlace mostrado (está alojada en mi sitio: elguille.info/WebFormVB.aspx).

Figura 1.

 

En la figura 2 te muestro la versión para C# antes de cambiarla a modo escritorio.
También puedes probarla usando este enlace en mi sitio: elguille.info/WebFormCS.aspx.

Figura 2. Mostrando la página como móvil y queriendo cambiar a versión para ordenador

 

Figura 3. Mostrando la página como si estuviese en escritorio y queriendo cambiar a versión apra sitio móvil.

 

Nota:
También puedes probarlo en el navegador de escritorio usando las herramientas de desarrollador, que en Edge y Chrome se pueden acceder usando Ctrl+Shift+I.
Y desde esas herramientas puedes indicar que se muestre como si fuese en un móvil (ver la figura 4).

Figura 4. Usando las herramientas de desarrollador puedes ver en el escritorio cómo sería usarlo en un móvil… o casi.

Espero que te sea de utilidad 😉

Nos vemos.
Guillermo