👨‍💻 Estoy trabajando en una app multiplataforma hecha con #electron y llevo exactamente una semana fajao con un error superraro que me afectaban cuando compilaba en Windows. Aquí dejo mi experiencia para los #devs por si les puede servir.
Estoy muy a favor de utilizar soluciones como #Electron y #Capacitor que permiten hacer soluciones multiplataformas, realmente hacen el proceso mucho más rápido que tener que construir una solución nativa para cada plataforma.
Como todo, nada es perfecto y aunque utilizar estas soluciones es muy cómodo, necesitas de determinadas dependencias nativas de los sistemas operativos para hacer el Build de la app, por lo que para compilar para macOS necesitas el sistema y así mismo ocurre con los otros.
Aparte la API tiene determinadas restricciones, según el OS y tienes que hacer unas cuantas diferenciaciones para cada uno.
En mi caso trabajo en #Linux y para compilar las soluciones para las diferentes OS utilizo @travisci que tiene ISOs de Mac, Linux y Windows, aunque para este mismo lo hago desde Linux con Docker. Puedes ver @appveyor también.
En fin, comencé a adicionarle a la aplicación algunas funciones nativas, para esto utilicé directamente algunas de las características que ofrece Electron y para otras plug-ins de terceros.
Todo bien en mi entorno, funcionaba sin problemas. Subí el código y se compiló para todos los sistemas operativos sin problema. Luego descargue el build de Windows para probarlo antes de lanzarlo y ahí empezaron los problemas.
La app funcionaba, pero no del todo, tenía unas cuantas funciones nativas afectadas. Como esto era un build no podía ver que error se estaba generando, así que me monte una máquina virtual de Windows para ejecutar la aplicación.
Ahí el problema cambio y cuando terminaba de instalar todos los paquetes y levantaba el servidor no tenía el mismo comportamiento del build, sencillamente no llegaba a cargar la app, mostraba otro error.
Por otro lado, ni siquiera la versión web de la app se levantaba bien y me mostraba otro error en un componente que siempre funciono, que no se había modificado.
En ese punto comencé a hacer todo tipo de pruebas intentando solucionar las cosas

✅ Upgradiar los paquetes
✅ Cambiar el gestor de paquetes
✅ Probar con versiones específicas de algunos paquetes
✅ Subirme a la placa para coger mejor cobertura (Los datos estan fatales)
Luego de unas cuantas pruebas y 20 yarn install a 80kb/s en 4g+ estaba en el mismo punto 😩. Lo que más me desconcertaba era que funcionaba en Linux y que la compilación en Travis para Windows también, pero local estaba muerto el Sever.
Ya en ese punto no me quedo más que revertir todos los cambios (que era el trabajo de un mes y medio) y ver que lo estaba ocasionando.
🪲 El problema: Un plug-in de terceros

De alguna forma esto funcionaba bien en Linux, pero en Windows generaba algún problema interno que por algún motivo se reflejaba incluso en otros paquetes.
¿Que aprender de esto?

✅ Intentar utilizar las soluciones nativas del framework que utilicemos y solo recurrir a paquetes de terceros si es imprescindible
✅ Cuando se van a tocar muchas funciones nativas en las #PWA los resultados pueden variar mucho según la plataforma, así que lo más recomendado es utilizarlas en apps que manejen casi todo en el webview.
✅ Un paquete que tenga un problema puede mostrarse como un error incluso en otro paquete (Asumo que por alguna dependencia)
✅ En apps multiplataformas, si un release va a incluir varios features es recomendable generar un build de prueba cada vez que introducimos un paquete nuevo o se adiciona un feature nativo.
✅ Trabajar en un mismo bug y con la internet muy mala por varios días puede acompañarse de cambios de humor y deseos de cambiar de profesion😅😅

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Manuel Ernesto

Manuel Ernesto Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @manuelernestog

Mar 18
🚀 Comienza el #PlatziDay y con él un maratón de aprendizaje. Aquí te traigo 9 cursos para startups para sacarle el máximo provecho. Recomendación cortesía de la comunidad #StartupCuba y @SandraMadiedoRu
1⃣ Audiocurso de Introducción al Mundo de las Startups

✅ Descubrirás la importancia de construir un gran equipo
✅ Conocerás el mindset que debes tener para fundar tu startup
✅ Entenderás el valor real de las ideas

platzi.com/cursos/mundo-s…
2⃣ La clase el mercado primero del Curso de Modelos de Negocio

platzi.com/clases/2583-mo…
Read 11 tweets
Feb 23
5 Pruebas que debes hacer cuando vayas a comprar tu nueva laptop 💻🧵 Image
Los equipos pueden tener defectos de fábrica y si son de uso más probabilidades tiene de tener algún problema, por lo que siempre hago estas pruebas antes de comprar un nuevo equipo.
Para realizar las pruebas vamos a emplear la aplicación @AIDA64_Official
Read 11 tweets
Jan 3
Si necesitas una herramienta para mejorar tu #productividad y planificar de manera sencilla tu semana te presento a weektodo.me un planificador semanal #minimalista y gratuito enfocado en la privacidad. Hecho con ❤️ desde🇨🇺para el🌐

Aquí te dejo algunos datos 👇
Principales caracteristicas:

👉 Almacenamiento Local
👉 Modo Oscuro
👉 Soporte para texto MarkDown
👉 Interfaz Modificable
👉 Subtareas
👉 Disponible para: Windows / Linux / macOS / Web
Hasta la fecha:

⬇️ 3.5k+ Descargas directas
🈳 10 idiomas
💻 Disponible en (MacUpdate, SnapStore y UpToDown)
👥 600+ usuarios Activos (Linux SnapStore)
🌎 82+ paises (Linux SnapStore)
Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(