How to Declare Variables in Android String Resources?

To be referenced by another string resources to avoid duplicated hard-coded strings in different places.

This article was originally published at on Dec 25, 2021.

Suppose you have 2 string resources app_name and about_text below, you have 2 duplicated hard-coded strings.

    <string name="app_name">My App Name</string>
    <string name="about_text">My App Name</string>

Reference Another String Resources

To get rid of duplicated hard-coded strings, what you can do is reference the app_name from the about_text.

    <string name="app_name">My App Name</string>
    <string name="about_text">@string/app_name</string>

But what if you have more complicated about_text like below?

    <string name="app_name">My App Name</string>
    <string name="about_text">My App Name is an awesome app!</string>

Use String Format

You can change the about_text to string format to allow the string to be constructed at run time.

    <string name="app_name">My App Name</string>
    <string name="about_text">%s is an awesome app!</string>

In code (in your activity class for example), you pass in the app_name string.

val aboutText = resources.getString(

Well, there is another better solution to use DOCTYPE! You don’t need to pass in the string variable from code.

Use DOCTYPE resources ENTITY

The DOCTYPE resources ENTITY declaration like a variable. You can reference it from another string resources using &<entity_name>; syntax.

<!DOCTYPE resources [
    <!ENTITY app_name "My App Name">
    <!ENTITY another_name "Test 1 2 3">

    <string name="app_name">&app_name;</string>
    <string name="about_text">&app_name; is an awesome app!</string>

P/S: If there is another way better than using DOCTYPE, please let me know.

Source link

Kotlin – Android’in Yeni Resmi Programlama Dili

Google her yıl düzenlediği I/O etkinliğinde bu sene biz Android geliştiricilerine bir süpriz yaptı. 17-19 Mayıs tarihleri arasında düzenlenen I/O 2017 etkinliğinde Android için yeni bir programlama dilini tanıttı. Bu dil JetBrains firmasının geliştirmiş olduğu Kotlin Programlama dili.Bu dil aynı java gibi JVM (Java Virtual Machine) üzerinde çalışabilen bir dildir. Yani bir defa yaz her platformda çalıştır mantığıyla çalışmaktadır.


Source link

Introducing the first step in Android Development

Along with web development, android development is also streaming fast. Android Development is provoking many aspirants to shake up with their skills. Everyone is making wonderful use of this technology to bring up their companies, work, and innovations. When we want to start a new journey we came up with many questions, so here we are going to put a first baby step in android development. Starting with the word “Android”, it is an operating system and it is intensified for mobile phones. So in simple words, we are going to learn how to build an application for mobile phones(any android device).
“Android Studio” is a platform to develop an application and it consists of all the libraries or packages required in executing apps called APK(Android Package Kit). So you need to download this for coding. There are many languages used in android development like Java, Kotlin,c#, python, etc. and famous frameworks are used for implementing an application that includes languages like React, Native, Flutter, etc. Google mostly supports Java or Kotlin to start the learning in android studio code but many companies are opting for applications using Kotlin and it’s moreover giving an impact on big tech companies. Similarly, If you opt for java then it will be an asset.
For any language, you choose you must be thoroughly cleaned with the concept of OOPS and DSA so that it gets easy to understand and implement the concept while developing.

Source link

Huge RCE in log4j logging library in JVM ecosystem

5 days ago log4j received hot-fix for huge RCE. It’s not quite known topic and today it has been expolited in multiple projects.

It’s really easy to reproduce, you should take a look at dependencies in your projects to address this issue. At least bump it to 2.15, the best choice is to move to e.g. logback, at least for a while.

Source link

My First Android App🎉😊


Solution#Hub-: Social app for helping students to solve their doubts


Academic success is important because working people will need higher levels of education to tackle the technologically demanding occupations of the future. … Mostly these days every student is engaged in improving their day today’s study .Really sometimes getting an exact or amazing approach of a question is not that easy,to solve this dilemma ,I came across the idea of solution sharing platform , socially and I build the Solution#Hub.

What it does🚀

Solution#Hub is a social solution sharing app for the doubts of anybody in any area they are facing trouble.
First is opens with authentication screen using your email id and password then , one should login if account is already created otherwise ,first create account via clicking the create account button. Then a app logo splash screen appears for few seconds and you enters in the zone of lots of doubts of the peoples, Now search according to the subject which you want to solve using search-bar and give your solution to someones doubts. Don’t forget to ask for feedback i.e stars ,yes the app has feature ,-more stars you have more up will be the your posted question and answer as well.
And if you don’t have any solution ,No worries click the circular post button and post your question and wait who will answer it first.It only takes 15 seconds because I used timer for it.
Yes, app also have the special features for questions of aptitude ,all aptitude doubts will appears under one
tab,which makes it more useful as, mostly students find mathematics to hard as compare to other subjects. and feel free to logout if don’t want yourself to be logged in.

How I built it🔨

I started off by creating a prototype in Figma. The mobile application was built using Kotlin and Android-Stusio as tool. We made use of Firebase-Firestore for authentication and for saving user data.I used Picasso library for string-url to image parsing.

Challenges I ran into🔴

I ran into some problems with On each item click in Recycler View as to provide different solutions to every question posted on the app.But yes besides it firebase firestore was very new to me, i was challenge task for me to connect my Ui to firestore ,Moreover how to Load images using Picasso Library from image url. And publishing to google play store,creating singed APK bundle was very new to me but finally i did it.

Accomplishments that I’m proud of🎖

I am able to create our proper authentication system along with forget password option which I never really tried before. I also explored Firestore in a deep way and got to understand how a few things worked a particular way. Making the Nested recycler view work was tough but finally i was able to work properly as to provide different solutions to a single question.

What I learned📚

I got more experience in kotlin and firebase-firestore by building this application. Got to learn about different authentication systems and how everything interacts in the kotlin application during auth. I also wished to integrate video solutions in the app and hence got a chance to work around how video solution parse using url.And how to make app available on google play store.

What’s next for Solution#Hub🎉

The current point system that I have is dynamic but I would love to introduce video solutions and scanning the question option into the application to make the whole experience even more rewarding.

Project Gallery📷


Try it out here

You can download It from google play store
Download it here – Solution#Hub
It has 100+ downloads recently.

Source link

La razón del por qué renuncie a mi trabajo.

Desde hace mas de 6 años que soy consultor de tecnologías SAP, donde tuve que enfrentar diferentes retos, donde conocí gente maravillosa y pues donde pude practicar lo que era mi principal lenguaje de programación que hasta el día de hoy le tengo cariño, el cual es Javascript.

Como empezó esta historia.

Por allá en el año 2016 era un estudiante egresado de la carrera de Analista Programador sin nada de experiencia y buscando opciones para poder comenzar mi carrera. En eso dentro del portal de busquedas laborales de mi instituto encontré una oferta donde se requerian Ingenieros en informática, o la tipica frase, carrera a fín para poder ingresar a la empresa como trainee. Pues a mi parecer era una excelente oferta y decidí postular.

A eso de unos días me llamaron a mi celular diciendome que si era posible acudir a una entrevista psicologica a la cual accedi ir de manera inmediata (cabe destacar que en ese entonces yo me encontraba en Santiago de Chile desempleado y sin dinero, por lo que me veia en la necesidad de trabajar en cualquier otra cosa para poder subsistir, fue un tiempo dificil jaja). Una vez que acudí a la entrevista, pues fue bastante rapido todo y sencillo, no era algo tan loco como en otras empresas, posterior a eso me llamaron nuevamente para otra entrevista, pero esta vez era con un lider de área el cual me preguntó bastantes cosas sobre programación por ejemplo que lenguajes sabia, con cual me sentia mas comodo y cosas asi mas no me hizo realizar ninguna actividad practica, con eso concluyó esa entrevista. A los días despues me vuelven a llamar para otra entrevista, ahora para otra área dentro de la empresa (eso me dió a entender que al señor no le agrade o quizas que otra cosa) la cual era el área de seguridad de una plataforma que en mi vida habia oido pero que esa misma cambiaria mi vida para siempre, SAP. el área de seguridad era bastante orientada a ser algo mas funcional que de programación, no me motivaba mucho a estar ahi por el hecho de que claro, no iba a poder realizar lo que yo queria hacer, programar, esa entrevista se dió por concluida. A los días nuevamente me llamaron para otra entrevista en otra área (en este punto yo ya pensaba en que no sabian donde ubicarme y hasta yo me empecé a cuestionar mi existencia) y conocí a quien sería mi mentor, Don Yerlan, un gran programador, pero algo interesante habia sucedido, yo siempre crei que con lo que aprendí en el instituto me bastaba y que esa era la verdad del universo (alto idiota fuí) pero no, tuve que aprender un nuevo lenguaje el cual hasta el día de hoy detesto pero fue con lo que empecé, el gran y majestuoso ABAP.

Pasaron los días y me llamaron para decirme que había quedado en el trabajo, supieran la felicidad que sentí en ese momento, un joven desempleado, recien egresado que había encontrado su primer trabajo en lo que estudió.

Ingresé a esta empresa (la cual se me olvidó comentar y es algo importante, esta empresa era una consultora multinacional, omitiré el nombre solo por si a caso) y ahi comenzó mi carrera, me entregaron un libro sobre este desconocido lenguaje para mi ABAP, era practicamente una biblia de 900 páginas el cual no terminé de leer por la sencilla razón de que no tenia tiempo para leerlo, me enviaron a trabajar de una vez. Pero aqui viene lo interesante, en ese entonces esta dichosa plataforma SAP, estaba haciendo cosas nuevas, estaban dejando un poco de lado lo tradicional para ellos, en ese entonces ABAP puro y duro, dando paso a nuevas herramientas en las cuales me pidieron que me empezace a involucrar, ahi fue donde conocí SAP FIORI una nueva UX para SAP el cual revolucionaria todo lo que era experiencia usuario (los que conocen SAP y creo que estarán de acuerdo conmigo, es un ERP horrible en cuanto a experiencia usuaria) y lo mas genial de todo esto es que gracias a eso aprendería un nuevo lenguaje y dejaria de lado lo ABAP por un buen tiempo, el cual fue Javascript, por que sí, SAP Fiori funcionaba con Javascript, con un framework que muy poca gente conoce pero que SAP adoptó ve tu a saber por qué, el cual era OpenUI5 un framework que nos ayudaria a armar tanto la interfaz como la programación misma de las aplicaciones que se pudieran requerir. Fueron unos duros años, no había documentación, no había mucha información al respecto y la que había estaba esparcida por varios lados, hasta tuve que realizar consultas en StackOverflow ya que no se podía encontrar mucha información sobre UI5 en general (el link de esa pregunta esta aquí es la pregunta mas famosa que tengo en StackOverflow, 15k de visitas no es menor) con ese framework yo me empezaría a hacer conocido en el mundo SAP ya que al menos aca en Chile, no es muy grande.

Para no seguir alargando esta historia, pues loq ue paso despues era todo muy repetitivo, pasaron los años, fui creciendo como profesional, pero llegó un punto en el que empecé a sentir que la consultoria no era para mi, empecé a enfermarme seguido, dolores de colon, estress, la vida ajetreada de la ciudad, todo eso empezó a pasarme la cuenta. En el periodo de 2016 a 2021 cambie de trabajo 2 veces buscando nuevas oportunidades y menos carga laboral, atender muchos clientes a la vez es algo agotador y claro, es algo en lo cual yo me sentía capaz pero que a largo plazo me pasó la cuenta.

Cuales fueron las razones de dejar mi trabajo.

Hay dos razones por la cual dejé mi trabajo, una médica y otra profesional, mas abajo explicaré ambas.

En estos 2 ultimos años por mi cuenta estuve indagando en lo que era programación para dispositivos moviles, aprendí algo de React Native y pues lo empecé a poner en práctica, es más, en mi ultimo trabajo pude lograr hacer una aplicación movil en React Native con EXPO gracias al curso de Nicolás Schurmann, estaba un poco desactualizado, pero nada que no se pudiera solventar buscando un poco en la documentación de EXPO o de React Native. En este proceso fue donde me empecé a enamorar de la programación movil, es algo para mi totalmente nuevo y algo que me está llamando tanto la atención que empecé a leer al respecto, Head First Kotlin, si estas interesado en aprender programación movil nativa, te recomiendo ese libro al 100%, no te enseña Android, pero si las bases necesarias para entender el lenguaje Kotlin y poder aplicarlo.

¿Recomendaría a alguien dejar su trabajo por aperender algo nuevo?.

Por supuesto que no, una parte que no conté en la breve historia de mi carrera mas arriba, es que todo este estress me llevó a acudir a un psiquiatra, por recomendación del psiquiatra me vi en la obligación de renunciar, si pueden mantener su trabajo y estudiar algo al mismo tiempo haganlo, pero jamás dejen su trabajo si no tienen alguna alternativa en su bolsillo.

Source link

Android development Core questions – DEV Community

All android app components are the essential blocks, and all these components are loosely coupled by Manifest (AndroidManifest.xml) file. these entry point may be system or a user can enter our app. Here is four types of android application components as shown in bellow

1) Activities
2) Services
3) Broadcast receivers
4) Components Providers

An activities nothing just a screen it provides the window in which the app draws ui’s and this is the entry point of the interacting with the users. An activity presents a single screen with a user interface for example whatsapp app might have one activity that show the users list on screen and another activity where we chat personal or group chat.

In android Services are specialy component that facilitates to run in the background in order to perform long running operations tasks. The main purpose of a service is to ensure that the application remains active in the background so that the user can operate multiple applications at the same time.

A broadcast receivers in android act as background functionalities as services and it will pass the data between activities. A broadcast receiver is an android component that allows an application to respond the message and that are broadcast by the android operating system or an android application.

Acomponent providers in android can help an application manage access to data store by itself, store by other apps, and provide a way to share data with other apps and they encapsulate data, provide data mechanism to defining data security. Content provider in android manage access to a central repository of data and this component provider is a part of an android application. content providers are two types :-
A) Directory
B) id based URIs

Source link

1 ano depois da transição de carreira. Sobrevivi? Rs

Algumas pessoas tem me perguntado sobre como comecei na área de tecnologia, e eu já falei um pouco nesse texto aqui, mas outras tem perguntado coisas sobre o “to be continued” da vida, sabe? Rs. Como tem sido meu dia a dia. Se eu sou boa na lógica..kkkkkrying, como me sinto nas entrevistas, e por ai vai.

Então, pega a pipoquinha que eu vou tentar explicar em algumas linhas de texto como anda minha vida depois dessa mudança radical, será que eu to curtindo?

Meu dia a dia é basicamente fazer a tela do aplicativo que tá aí na sua mão, é dar comportamento pra ela, deixar bonitinha e acessível. O fluxo é: a área de negócio pede, a galera de UX desenha e os devs desenvolvem, fim! Achou que eu ia dizer o que? “Eu fiquei rica!! Ganho rios de dinheiro e minha vida tem sido uma aventura like Mr. Robot” ? rs.

Sobre a lógica, pensa em um Ser que chorou pra entender algoritmos! Sou o puro meme da Nazaré e um dos motivos que me faz amar o trabalho remoto é porque ninguém vê minhas lágrimas #brinks…será?

Sei que tenho muita coisa pra entender ainda, e sigo o lema: “aceita que dói menos”!
Eu não fiz uma facul na área e eu comecei nisso recentemente, poxa! Tô em um trabalho psicológico daqueles pra não me cobrar tanto. O que me tranquiliza também é que todo mundo me orienta a focar na base, então to correndo átras do preju todo dia (sério, TODO DIA MESMO, no estilo No Pain, No Gain!), eu faço exercícios de algoritmo no caderno, com diagramas e portugol. Aos poucos vou alimentando meu github com resoluções em Kotlin

Eu vejo muitas pessoas falando que tem que estudar muito pra ser Dev, mas gente, você tem que estudar muito pra ser bom em qualquer coisa que quiser fazer!

Quando eu era advogada eu tinha que estudar demais também. Ainda mais em um país que sai um entendimento diferente das leis cada vez que vou até a cozinha pegar um copo d’água.

Ok, posso ter exagerado aqui, mas esse é o espírito hehe.

Sobre as entrevistas…não! Eu não me sinto segura fazendo entrevista e também não fiz muitas. O que posso falar é sobre a última. Quando decidi mudar de emprego, eu tive que fazer um teste e foi basicamente um relacionamento sério com o google! Muitas pesquisas por lá pra conseguir fazer. No dia da entrevista me perguntaram algumas coisas sobre o teste: como eu fiz e como pensei pra fazer daquela forma. Eu fui muito sincera. Mas também acho que quando se é Júnior tem a vantagem de pegarem “leve” nas entrevistas, ainda mais quando a pessoa vem de uma área totalmente aleatória rs.

Bom, isso foi um bom resumo sobre as perguntas que me fizeram ultimamente. E acho que na verdade tem mais de 1 ano que estou na área, mas parecem 5 anos de tanta informação que eu fui absorvendo com o tempo e de como tudo é extremente dinâmico. O que eu adoro! Mas confesso que às vezes bate um surtinho do tipo: “crendeuspai, como vou aprender tudo isso…”, mas é “SÓ” manter a calma, respirar fundo, rezar 3 Ave Maria que no final provavelmente dá tudo certo, mas como eu disse, tô no começo ainda rsrs.

Brincadeiras à parte, continuo dizendo pra todo mundo que essa foi a melhor decisão que eu tomei na vida!! =)

Ah, em breve vou compartilhar com vocês aqui um outro texto de como eu to estudando, quais os livros e sites que to usando, e também como faço para não cair no desespero de estudar cada novidade que surge por aí! Mas já adianto que não tenho nenhum super segredo rs.

Source link